diff --git a/drivers/ata/fsl_sata.c b/drivers/ata/fsl_sata.c
index 99af1d4..9c41711 100644
--- a/drivers/ata/fsl_sata.c
+++ b/drivers/ata/fsl_sata.c
@@ -746,7 +746,7 @@
 static ulong sata_read(struct udevice *dev, lbaint_t blknr, lbaint_t blkcnt,
 		       void *buffer)
 {
-	struct fsl_ata_priv *priv = dev_get_platdata(dev);
+	struct fsl_ata_priv *priv = dev_get_plat(dev);
 	fsl_sata_t *sata = priv->fsl_sata;
 #endif
 	u32 rc;
@@ -768,7 +768,7 @@
 static ulong sata_write(struct udevice *dev, lbaint_t blknr, lbaint_t blkcnt,
 			const void *buffer)
 {
-	struct fsl_ata_priv *priv = dev_get_platdata(dev);
+	struct fsl_ata_priv *priv = dev_get_plat(dev);
 	fsl_sata_t *sata = priv->fsl_sata;
 #endif
 	u32 rc;
@@ -809,7 +809,7 @@
 static int scan_sata(struct udevice *dev)
 {
 	struct blk_desc *desc = dev_get_uclass_plat(dev);
-	struct fsl_ata_priv *priv = dev_get_platdata(dev);
+	struct fsl_ata_priv *priv = dev_get_plat(dev);
 	fsl_sata_t *sata = priv->fsl_sata;
 #endif
 
@@ -969,7 +969,7 @@
 			continue;
 		}
 
-		blk_priv = dev_get_platdata(blk);
+		blk_priv = dev_get_plat(blk);
 		blk_priv->fsl_sata = priv->fsl_sata;
 		/* Scan SATA port */
 		ret = scan_sata(blk);
diff --git a/drivers/ata/sata_mv.c b/drivers/ata/sata_mv.c
index bb17392..b78e311 100644
--- a/drivers/ata/sata_mv.c
+++ b/drivers/ata/sata_mv.c
@@ -290,7 +290,7 @@
 /* Cut from sata_mv in linux kernel */
 static int mv_stop_edma_engine(struct udevice *dev, int port)
 {
-	struct mv_priv *priv = dev_get_platdata(dev);
+	struct mv_priv *priv = dev_get_plat(dev);
 	int i;
 
 	/* Disable eDMA. The disable bit auto clears. */
@@ -311,7 +311,7 @@
 
 static int mv_start_edma_engine(struct udevice *dev, int port)
 {
-	struct mv_priv *priv = dev_get_platdata(dev);
+	struct mv_priv *priv = dev_get_plat(dev);
 	u32 tmp;
 
 	/* Check preconditions */
@@ -363,7 +363,7 @@
 
 static int mv_reset_channel(struct udevice *dev, int port)
 {
-	struct mv_priv *priv = dev_get_platdata(dev);
+	struct mv_priv *priv = dev_get_plat(dev);
 
 	/* Make sure edma is stopped  */
 	mv_stop_edma_engine(dev, port);
@@ -378,7 +378,7 @@
 
 static void mv_reset_port(struct udevice *dev, int port)
 {
-	struct mv_priv *priv = dev_get_platdata(dev);
+	struct mv_priv *priv = dev_get_plat(dev);
 
 	mv_reset_channel(dev, port);
 
@@ -404,7 +404,7 @@
 
 static int probe_port(struct udevice *dev, int port)
 {
-	struct mv_priv *priv = dev_get_platdata(dev);
+	struct mv_priv *priv = dev_get_plat(dev);
 	int tries, tries2, set15 = 0;
 	u32 tmp;
 
@@ -467,7 +467,7 @@
 /* Get request queue in pointer */
 static int get_reqip(struct udevice *dev, int port)
 {
-	struct mv_priv *priv = dev_get_platdata(dev);
+	struct mv_priv *priv = dev_get_plat(dev);
 	u32 tmp;
 
 	tmp = in_le32(priv->regbase + EDMA_RQIPR) & EDMA_RQIPR_IPMASK;
@@ -478,7 +478,7 @@
 
 static void set_reqip(struct udevice *dev, int port, int reqin)
 {
-	struct mv_priv *priv = dev_get_platdata(dev);
+	struct mv_priv *priv = dev_get_plat(dev);
 	u32 tmp;
 
 	tmp = in_le32(priv->regbase + EDMA_RQIPR) & ~EDMA_RQIPR_IPMASK;
@@ -497,7 +497,7 @@
 /* Get response queue in pointer */
 static int get_rspip(struct udevice *dev, int port)
 {
-	struct mv_priv *priv = dev_get_platdata(dev);
+	struct mv_priv *priv = dev_get_plat(dev);
 	u32 tmp;
 
 	tmp = in_le32(priv->regbase + EDMA_RSIPR) & EDMA_RSIPR_IPMASK;
@@ -509,7 +509,7 @@
 /* Get response queue out pointer */
 static int get_rspop(struct udevice *dev, int port)
 {
-	struct mv_priv *priv = dev_get_platdata(dev);
+	struct mv_priv *priv = dev_get_plat(dev);
 	u32 tmp;
 
 	tmp = in_le32(priv->regbase + EDMA_RSOPR) & EDMA_RSOPR_OPMASK;
@@ -526,7 +526,7 @@
 /* Set response queue pointer */
 static void set_rspop(struct udevice *dev, int port, int reqin)
 {
-	struct mv_priv *priv = dev_get_platdata(dev);
+	struct mv_priv *priv = dev_get_plat(dev);
 	u32 tmp;
 
 	tmp = in_le32(priv->regbase + EDMA_RSOPR) & ~EDMA_RSOPR_OPMASK;
@@ -552,7 +552,7 @@
 static void process_responses(struct udevice *dev, int port)
 {
 #ifdef DEBUG
-	struct mv_priv *priv = dev_get_platdata(dev);
+	struct mv_priv *priv = dev_get_plat(dev);
 #endif
 	u32 tmp;
 	u32 outind = get_rspop(dev, port);
@@ -580,7 +580,7 @@
 			       struct sata_fis_h2d *cfis,
 			       u8 *buffer, u32 len, u32 iswrite)
 {
-	struct mv_priv *priv = dev_get_platdata(dev);
+	struct mv_priv *priv = dev_get_plat(dev);
 	struct crqb *req;
 	int slot;
 	u32 start;
@@ -772,7 +772,7 @@
 				      struct sata_fis_h2d *cfis, u8 *buffer,
 				      u32 len, u32 iswrite)
 {
-	struct mv_priv *priv = dev_get_platdata(dev);
+	struct mv_priv *priv = dev_get_plat(dev);
 	int i;
 	u16 *tp;
 
@@ -823,7 +823,7 @@
 
 static void mv_sata_xfer_mode(struct udevice *dev, int port, u16 *id)
 {
-	struct mv_priv *priv = dev_get_platdata(dev);
+	struct mv_priv *priv = dev_get_plat(dev);
 
 	priv->pio = id[ATA_ID_PIO_MODES];
 	priv->mwdma = id[ATA_ID_MWDMA_MODES];
@@ -834,7 +834,7 @@
 
 static void mv_sata_set_features(struct udevice *dev, int port)
 {
-	struct mv_priv *priv = dev_get_platdata(dev);
+	struct mv_priv *priv = dev_get_plat(dev);
 	struct sata_fis_h2d cfis;
 	u8 udma_cap;
 
@@ -886,7 +886,7 @@
 
 static int sata_mv_init_sata(struct udevice *dev, int port)
 {
-	struct mv_priv *priv = dev_get_platdata(dev);
+	struct mv_priv *priv = dev_get_plat(dev);
 
 	debug("Initialize sata dev: %d\n", port);
 
@@ -944,7 +944,7 @@
 static int sata_mv_scan_sata(struct udevice *dev, int port)
 {
 	struct blk_desc *desc = dev_get_uclass_plat(dev);
-	struct mv_priv *priv = dev_get_platdata(dev);
+	struct mv_priv *priv = dev_get_plat(dev);
 	unsigned char serial[ATA_ID_SERNO_LEN + 1];
 	unsigned char firmware[ATA_ID_FW_REV_LEN + 1];
 	unsigned char product[ATA_ID_PROD_LEN + 1];
@@ -1006,7 +1006,7 @@
 static ulong sata_mv_read(struct udevice *blk, lbaint_t blknr,
 			  lbaint_t blkcnt, void *buffer)
 {
-	struct mv_priv *priv = dev_get_platdata(blk);
+	struct mv_priv *priv = dev_get_plat(blk);
 
 	return ata_low_level_rw(blk, priv->dev_nr, blknr, blkcnt,
 				buffer, READ_CMD);
@@ -1015,7 +1015,7 @@
 static ulong sata_mv_write(struct udevice *blk, lbaint_t blknr,
 			   lbaint_t blkcnt, const void *buffer)
 {
-	struct mv_priv *priv = dev_get_platdata(blk);
+	struct mv_priv *priv = dev_get_plat(blk);
 
 	return ata_low_level_rw(blk, priv->dev_nr, blknr, blkcnt,
 				(void *)buffer, WRITE_CMD);
@@ -1055,7 +1055,7 @@
 			return ret;
 		}
 
-		priv = dev_get_platdata(blk);
+		priv = dev_get_plat(blk);
 		priv->dev_nr = i;
 
 		/* Init SATA port */
diff --git a/drivers/ata/sata_sil.c b/drivers/ata/sata_sil.c
index 2bc3d22..7e4e97d 100644
--- a/drivers/ata/sata_sil.c
+++ b/drivers/ata/sata_sil.c
@@ -492,7 +492,7 @@
 static ulong sata_read(struct udevice *dev, lbaint_t blknr, lbaint_t blkcnt,
 		       void *buffer)
 {
-	struct sil_sata_priv *priv = dev_get_platdata(dev);
+	struct sil_sata_priv *priv = dev_get_plat(dev);
 	int port_number = priv->port_num;
 	struct sil_sata *sata = priv->sil_sata_desc[port_number];
 #endif
@@ -517,7 +517,7 @@
 ulong sata_write(struct udevice *dev, lbaint_t blknr, lbaint_t blkcnt,
 		 const void *buffer)
 {
-	struct sil_sata_priv *priv = dev_get_platdata(dev);
+	struct sil_sata_priv *priv = dev_get_plat(dev);
 	int port_number = priv->port_num;
 	struct sil_sata *sata = priv->sil_sata_desc[port_number];
 #endif
@@ -542,7 +542,7 @@
 #else
 static int sil_init_sata(struct udevice *uc_dev, int dev)
 {
-	struct sil_sata_priv *priv = dev_get_platdata(uc_dev);
+	struct sil_sata_priv *priv = dev_get_plat(uc_dev);
 #endif
 	struct sil_sata *sata;
 	void *port;
@@ -709,7 +709,7 @@
 static int scan_sata(struct udevice *blk_dev, int dev)
 {
 	struct blk_desc *desc = dev_get_uclass_plat(blk_dev);
-	struct sil_sata_priv *priv = dev_get_platdata(blk_dev);
+	struct sil_sata_priv *priv = dev_get_plat(blk_dev);
 	struct sil_sata *sata = priv->sil_sata_desc[dev];
 #endif
 	unsigned char serial[ATA_ID_SERNO_LEN + 1];
diff --git a/drivers/block/sandbox.c b/drivers/block/sandbox.c
index 12d3200..34c26cd 100644
--- a/drivers/block/sandbox.c
+++ b/drivers/block/sandbox.c
@@ -34,7 +34,7 @@
 				     unsigned long start, lbaint_t blkcnt,
 				     void *buffer)
 {
-	struct host_block_dev *host_dev = dev_get_platdata(dev);
+	struct host_block_dev *host_dev = dev_get_plat(dev);
 	struct blk_desc *block_dev = dev_get_uclass_plat(dev);
 
 #else
@@ -65,7 +65,7 @@
 				      unsigned long start, lbaint_t blkcnt,
 				      const void *buffer)
 {
-	struct host_block_dev *host_dev = dev_get_platdata(dev);
+	struct host_block_dev *host_dev = dev_get_plat(dev);
 	struct blk_desc *block_dev = dev_get_uclass_plat(dev);
 #else
 static unsigned long host_block_write(struct blk_desc *block_dev,
@@ -133,7 +133,7 @@
 	if (ret)
 		goto err_file;
 
-	host_dev = dev_get_platdata(dev);
+	host_dev = dev_get_plat(dev);
 	host_dev->fd = fd;
 	host_dev->filename = fname;
 
diff --git a/drivers/cache/cache-v5l2.c b/drivers/cache/cache-v5l2.c
index 5f6fc1b..5b9ced9 100644
--- a/drivers/cache/cache-v5l2.c
+++ b/drivers/cache/cache-v5l2.c
@@ -73,7 +73,7 @@
 
 static int v5l2_enable(struct udevice *dev)
 {
-	struct v5l2_plat *plat = dev_get_platdata(dev);
+	struct v5l2_plat *plat = dev_get_plat(dev);
 	volatile struct l2cache *regs = plat->regs;
 
 	if (regs)
@@ -84,7 +84,7 @@
 
 static int v5l2_disable(struct udevice *dev)
 {
-	struct v5l2_plat *plat = dev_get_platdata(dev);
+	struct v5l2_plat *plat = dev_get_plat(dev);
 	volatile struct l2cache *regs = plat->regs;
 	u8 hart = gd->arch.boot_hart;
 	void __iomem *cctlcmd = (void __iomem *)CCTL_CMD_REG(regs, hart);
@@ -106,7 +106,7 @@
 
 static int v5l2_ofdata_to_platdata(struct udevice *dev)
 {
-	struct v5l2_plat *plat = dev_get_platdata(dev);
+	struct v5l2_plat *plat = dev_get_plat(dev);
 	struct l2cache *regs;
 
 	regs = (struct l2cache *)dev_read_addr(dev);
@@ -130,7 +130,7 @@
 
 static int v5l2_probe(struct udevice *dev)
 {
-	struct v5l2_plat *plat = dev_get_platdata(dev);
+	struct v5l2_plat *plat = dev_get_plat(dev);
 	struct l2cache *regs = plat->regs;
 	u32 ctl_val;
 
diff --git a/drivers/clk/altera/clk-agilex.c b/drivers/clk/altera/clk-agilex.c
index 619621f..c67155c 100644
--- a/drivers/clk/altera/clk-agilex.c
+++ b/drivers/clk/altera/clk-agilex.c
@@ -236,7 +236,7 @@
 static void clk_basic_init(struct udevice *dev,
 			   const struct cm_config * const cfg)
 {
-	struct socfpga_clk_platdata *plat = dev_get_platdata(dev);
+	struct socfpga_clk_platdata *plat = dev_get_plat(dev);
 	u32 vcocalib;
 
 	if (!cfg)
@@ -585,7 +585,7 @@
 
 static ulong socfpga_clk_get_rate(struct clk *clk)
 {
-	struct socfpga_clk_platdata *plat = dev_get_platdata(clk->dev);
+	struct socfpga_clk_platdata *plat = dev_get_plat(clk->dev);
 
 	switch (clk->id) {
 	case AGILEX_MPU_CLK:
@@ -630,7 +630,7 @@
 
 static int socfpga_clk_ofdata_to_platdata(struct udevice *dev)
 {
-	struct socfpga_clk_platdata *plat = dev_get_platdata(dev);
+	struct socfpga_clk_platdata *plat = dev_get_plat(dev);
 	fdt_addr_t addr;
 
 	addr = dev_read_addr(dev);
diff --git a/drivers/clk/altera/clk-arria10.c b/drivers/clk/altera/clk-arria10.c
index bb1b367..11f10c5 100644
--- a/drivers/clk/altera/clk-arria10.c
+++ b/drivers/clk/altera/clk-arria10.c
@@ -43,7 +43,7 @@
 
 static int socfpga_a10_clk_get_upstream(struct clk *clk, struct clk **upclk)
 {
-	struct socfpga_a10_clk_platdata *plat = dev_get_platdata(clk->dev);
+	struct socfpga_a10_clk_platdata *plat = dev_get_plat(clk->dev);
 	u32 reg, maxval;
 
 	if (plat->clks.count == 0)
@@ -84,7 +84,7 @@
 
 static int socfpga_a10_clk_endisable(struct clk *clk, bool enable)
 {
-	struct socfpga_a10_clk_platdata *plat = dev_get_platdata(clk->dev);
+	struct socfpga_a10_clk_platdata *plat = dev_get_plat(clk->dev);
 	struct clk *upclk = NULL;
 	int ret;
 
@@ -120,7 +120,7 @@
 
 static ulong socfpga_a10_clk_get_rate(struct clk *clk)
 {
-	struct socfpga_a10_clk_platdata *plat = dev_get_platdata(clk->dev);
+	struct socfpga_a10_clk_platdata *plat = dev_get_plat(clk->dev);
 	struct clk *upclk = NULL;
 	ulong rate = 0, reg, numer, denom;
 	int ret;
@@ -190,7 +190,7 @@
  */
 static void socfpga_a10_handoff_workaround(struct udevice *dev)
 {
-	struct socfpga_a10_clk_platdata *plat = dev_get_platdata(dev);
+	struct socfpga_a10_clk_platdata *plat = dev_get_plat(dev);
 	const void *fdt = gd->fdt_blob;
 	struct clk_bulk	*bulk = &plat->clks;
 	int i, ret, offset = dev_of_offset(dev);
@@ -274,7 +274,7 @@
 
 static int socfpga_a10_clk_probe(struct udevice *dev)
 {
-	struct socfpga_a10_clk_platdata *plat = dev_get_platdata(dev);
+	struct socfpga_a10_clk_platdata *plat = dev_get_plat(dev);
 	struct socfpga_a10_clk_platdata *pplat;
 	struct udevice *pdev;
 	const void *fdt = gd->fdt_blob;
@@ -291,7 +291,7 @@
 		if (!pdev)
 			return -ENODEV;
 
-		pplat = dev_get_platdata(pdev);
+		pplat = dev_get_plat(pdev);
 		if (!pplat)
 			return -EINVAL;
 
@@ -321,7 +321,7 @@
 
 static int socfpga_a10_ofdata_to_platdata(struct udevice *dev)
 {
-	struct socfpga_a10_clk_platdata *plat = dev_get_platdata(dev);
+	struct socfpga_a10_clk_platdata *plat = dev_get_plat(dev);
 	unsigned int divreg[3], gatereg[2];
 	int ret;
 
diff --git a/drivers/clk/at91/compat.c b/drivers/clk/at91/compat.c
index b56c01f..7137524 100644
--- a/drivers/clk/at91/compat.c
+++ b/drivers/clk/at91/compat.c
@@ -45,7 +45,7 @@
 
 static int at91_pmc_core_probe(struct udevice *dev)
 {
-	struct pmc_platdata *plat = dev_get_platdata(dev);
+	struct pmc_platdata *plat = dev_get_plat(dev);
 
 	dev = dev_get_parent(dev);
 
@@ -115,7 +115,7 @@
 int at91_clk_probe(struct udevice *dev)
 {
 	struct udevice *dev_periph_container, *dev_pmc;
-	struct pmc_platdata *plat = dev_get_platdata(dev);
+	struct pmc_platdata *plat = dev_get_plat(dev);
 
 	dev_periph_container = dev_get_parent(dev);
 	dev_pmc = dev_get_parent(dev_periph_container);
@@ -191,7 +191,7 @@
 /* Main osc clock specific code. */
 static int main_osc_clk_enable(struct clk *clk)
 {
-	struct pmc_platdata *plat = dev_get_platdata(clk->dev);
+	struct pmc_platdata *plat = dev_get_plat(clk->dev);
 	struct at91_pmc *pmc = plat->reg_base;
 
 	if (readl(&pmc->sr) & AT91_PMC_MOSCSELS)
@@ -232,7 +232,7 @@
 /* PLLA clock specific code. */
 static int plla_clk_enable(struct clk *clk)
 {
-	struct pmc_platdata *plat = dev_get_platdata(clk->dev);
+	struct pmc_platdata *plat = dev_get_plat(clk->dev);
 	struct at91_pmc *pmc = plat->reg_base;
 
 	if (readl(&pmc->sr) & AT91_PMC_LOCKA)
@@ -278,7 +278,7 @@
 
 static ulong at91_plladiv_clk_get_rate(struct clk *clk)
 {
-	struct pmc_platdata *plat = dev_get_platdata(clk->dev);
+	struct pmc_platdata *plat = dev_get_plat(clk->dev);
 	struct at91_pmc *pmc = plat->reg_base;
 	struct clk source;
 	ulong clk_rate;
@@ -297,7 +297,7 @@
 
 static ulong at91_plladiv_clk_set_rate(struct clk *clk, ulong rate)
 {
-	struct pmc_platdata *plat = dev_get_platdata(clk->dev);
+	struct pmc_platdata *plat = dev_get_plat(clk->dev);
 	struct at91_pmc *pmc = plat->reg_base;
 	struct clk source;
 	ulong parent_rate;
@@ -401,7 +401,7 @@
 
 static int system_clk_enable(struct clk *clk)
 {
-	struct pmc_platdata *plat = dev_get_platdata(clk->dev);
+	struct pmc_platdata *plat = dev_get_plat(clk->dev);
 	struct at91_pmc *pmc = plat->reg_base;
 	u32 mask;
 
@@ -483,7 +483,7 @@
 
 static int periph_clk_enable(struct clk *clk)
 {
-	struct pmc_platdata *plat = dev_get_platdata(clk->dev);
+	struct pmc_platdata *plat = dev_get_plat(clk->dev);
 	struct at91_pmc *pmc = plat->reg_base;
 	enum periph_clk_type clk_type;
 	void *addr;
@@ -552,7 +552,7 @@
 
 static int utmi_clk_enable(struct clk *clk)
 {
-	struct pmc_platdata *plat = dev_get_platdata(clk->dev);
+	struct pmc_platdata *plat = dev_get_plat(clk->dev);
 	struct at91_pmc *pmc = plat->reg_base;
 	struct clk clk_dev;
 	ulong clk_rate;
@@ -640,7 +640,7 @@
 
 static int utmi_clk_ofdata_to_platdata(struct udevice *dev)
 {
-	struct pmc_platdata *plat = dev_get_platdata(dev);
+	struct pmc_platdata *plat = dev_get_plat(dev);
 	struct udevice *syscon;
 
 	uclass_get_device_by_phandle(UCLASS_SYSCON, dev,
@@ -681,7 +681,7 @@
 
 static ulong sama5d4_h32mx_clk_get_rate(struct clk *clk)
 {
-	struct pmc_platdata *plat = dev_get_platdata(clk->dev);
+	struct pmc_platdata *plat = dev_get_plat(clk->dev);
 	struct at91_pmc *pmc = plat->reg_base;
 	ulong rate = gd->arch.mck_rate_hz;
 
@@ -754,7 +754,7 @@
 
 static ulong generic_clk_get_rate(struct clk *clk)
 {
-	struct pmc_platdata *plat = dev_get_platdata(clk->dev);
+	struct pmc_platdata *plat = dev_get_plat(clk->dev);
 	struct at91_pmc *pmc = plat->reg_base;
 	struct clk parent;
 	ulong clk_rate;
@@ -782,7 +782,7 @@
 
 static ulong generic_clk_set_rate(struct clk *clk, ulong rate)
 {
-	struct pmc_platdata *plat = dev_get_platdata(clk->dev);
+	struct pmc_platdata *plat = dev_get_plat(clk->dev);
 	struct at91_pmc *pmc = plat->reg_base;
 	struct generic_clk_priv *priv = dev_get_priv(clk->dev);
 	struct clk parent, best_parent;
@@ -895,7 +895,7 @@
 
 static ulong at91_usb_clk_get_rate(struct clk *clk)
 {
-	struct pmc_platdata *plat = dev_get_platdata(clk->dev);
+	struct pmc_platdata *plat = dev_get_plat(clk->dev);
 	struct at91_pmc *pmc = plat->reg_base;
 	struct clk source;
 	u32 tmp, usbdiv;
@@ -916,7 +916,7 @@
 
 static ulong at91_usb_clk_set_rate(struct clk *clk, ulong rate)
 {
-	struct pmc_platdata *plat = dev_get_platdata(clk->dev);
+	struct pmc_platdata *plat = dev_get_plat(clk->dev);
 	struct at91_pmc *pmc = plat->reg_base;
 	struct at91_usb_clk_priv *priv = dev_get_priv(clk->dev);
 	struct clk source, best_source;
diff --git a/drivers/clk/clk_boston.c b/drivers/clk/clk_boston.c
index 75e2e43..374fc9a 100644
--- a/drivers/clk/clk_boston.c
+++ b/drivers/clk/clk_boston.c
@@ -28,7 +28,7 @@
 
 static ulong clk_boston_get_rate(struct clk *clk)
 {
-	struct clk_boston *state = dev_get_platdata(clk->dev);
+	struct clk_boston *state = dev_get_plat(clk->dev);
 	uint32_t in_rate, mul, div;
 	uint mmcmdiv;
 	int err;
@@ -60,7 +60,7 @@
 
 static int clk_boston_ofdata_to_platdata(struct udevice *dev)
 {
-	struct clk_boston *state = dev_get_platdata(dev);
+	struct clk_boston *state = dev_get_plat(dev);
 	struct udevice *syscon;
 	int err;
 
diff --git a/drivers/clk/clk_fixed_factor.c b/drivers/clk/clk_fixed_factor.c
index 7a9d423..d68f79d 100644
--- a/drivers/clk/clk_fixed_factor.c
+++ b/drivers/clk/clk_fixed_factor.c
@@ -18,7 +18,7 @@
 };
 
 #define to_clk_fixed_factor(dev)	\
-	((struct clk_fixed_factor *)dev_get_platdata(dev))
+	((struct clk_fixed_factor *)dev_get_plat(dev))
 
 static ulong clk_fixed_factor_get_rate(struct clk *clk)
 {
diff --git a/drivers/clk/rockchip/clk_rk3188.c b/drivers/clk/rockchip/clk_rk3188.c
index f96aab9..4c4bd68 100644
--- a/drivers/clk/rockchip/clk_rk3188.c
+++ b/drivers/clk/rockchip/clk_rk3188.c
@@ -561,7 +561,7 @@
 
 #ifdef CONFIG_SPL_BUILD
 #if CONFIG_IS_ENABLED(OF_PLATDATA)
-	struct rk3188_clk_plat *plat = dev_get_platdata(dev);
+	struct rk3188_clk_plat *plat = dev_get_plat(dev);
 
 	priv->cru = map_sysmem(plat->dtd.reg[0], plat->dtd.reg[1]);
 #endif
diff --git a/drivers/clk/rockchip/clk_rk3288.c b/drivers/clk/rockchip/clk_rk3288.c
index 0263883..588cfcc 100644
--- a/drivers/clk/rockchip/clk_rk3288.c
+++ b/drivers/clk/rockchip/clk_rk3288.c
@@ -975,7 +975,7 @@
 		return PTR_ERR(priv->grf);
 #ifdef CONFIG_SPL_BUILD
 #if CONFIG_IS_ENABLED(OF_PLATDATA)
-	struct rk3288_clk_plat *plat = dev_get_platdata(dev);
+	struct rk3288_clk_plat *plat = dev_get_plat(dev);
 
 	priv->cru = map_sysmem(plat->dtd.reg[0], plat->dtd.reg[1]);
 #endif
diff --git a/drivers/clk/rockchip/clk_rk3368.c b/drivers/clk/rockchip/clk_rk3368.c
index d32762c..08c98e0 100644
--- a/drivers/clk/rockchip/clk_rk3368.c
+++ b/drivers/clk/rockchip/clk_rk3368.c
@@ -582,7 +582,7 @@
 {
 	struct rk3368_clk_priv __maybe_unused *priv = dev_get_priv(dev);
 #if CONFIG_IS_ENABLED(OF_PLATDATA)
-	struct rk3368_clk_plat *plat = dev_get_platdata(dev);
+	struct rk3368_clk_plat *plat = dev_get_plat(dev);
 
 	priv->cru = map_sysmem(plat->dtd.reg[0], plat->dtd.reg[1]);
 #endif
diff --git a/drivers/clk/rockchip/clk_rk3399.c b/drivers/clk/rockchip/clk_rk3399.c
index 515c855..2c0ff3b 100644
--- a/drivers/clk/rockchip/clk_rk3399.c
+++ b/drivers/clk/rockchip/clk_rk3399.c
@@ -1378,7 +1378,7 @@
 	bool init_clocks = false;
 
 #if CONFIG_IS_ENABLED(OF_PLATDATA)
-	struct rk3399_clk_plat *plat = dev_get_platdata(dev);
+	struct rk3399_clk_plat *plat = dev_get_plat(dev);
 
 	priv->cru = map_sysmem(plat->dtd.reg[0], plat->dtd.reg[1]);
 #endif
@@ -1599,7 +1599,7 @@
 #endif
 
 #if CONFIG_IS_ENABLED(OF_PLATDATA)
-	struct rk3399_pmuclk_plat *plat = dev_get_platdata(dev);
+	struct rk3399_pmuclk_plat *plat = dev_get_plat(dev);
 
 	priv->pmucru = map_sysmem(plat->dtd.reg[0], plat->dtd.reg[1]);
 #endif
diff --git a/drivers/core/device.c b/drivers/core/device.c
index 6933edc..332b1d0 100644
--- a/drivers/core/device.c
+++ b/drivers/core/device.c
@@ -517,7 +517,7 @@
 	return ret;
 }
 
-void *dev_get_platdata(const struct udevice *dev)
+void *dev_get_plat(const struct udevice *dev)
 {
 	if (!dev) {
 		dm_warn("%s: null device\n", __func__);
diff --git a/drivers/core/syscon-uclass.c b/drivers/core/syscon-uclass.c
index 823d073..5de4622 100644
--- a/drivers/core/syscon-uclass.c
+++ b/drivers/core/syscon-uclass.c
@@ -56,7 +56,7 @@
 	 * using OF_PLATDATA will need to ensure that this is true.
 	 */
 #if CONFIG_IS_ENABLED(OF_PLATDATA)
-	struct syscon_base_platdata *plat = dev_get_platdata(dev);
+	struct syscon_base_platdata *plat = dev_get_plat(dev);
 
 	return regmap_init_mem_platdata(dev, plat->reg, ARRAY_SIZE(plat->reg),
 					&priv->regmap);
diff --git a/drivers/cpu/at91_cpu.c b/drivers/cpu/at91_cpu.c
index ff1c406..bd81efd 100644
--- a/drivers/cpu/at91_cpu.c
+++ b/drivers/cpu/at91_cpu.c
@@ -27,7 +27,7 @@
 
 int at91_cpu_get_desc(const struct udevice *dev, char *buf, int size)
 {
-	struct at91_cpu_platdata *plat = dev_get_platdata(dev);
+	struct at91_cpu_platdata *plat = dev_get_plat(dev);
 
 	snprintf(buf, size, "%s\n"
 		 "Crystal frequency: %8lu MHz\n"
@@ -41,7 +41,7 @@
 
 static int at91_cpu_get_info(const struct udevice *dev, struct cpu_info *info)
 {
-	struct at91_cpu_platdata *plat = dev_get_platdata(dev);
+	struct at91_cpu_platdata *plat = dev_get_plat(dev);
 
 	info->cpu_freq = plat->cpufreq_mhz * 1000000;
 	info->features = BIT(CPU_FEAT_L1_CACHE);
@@ -75,7 +75,7 @@
 
 static int at91_cpu_probe(struct udevice *dev)
 {
-	struct at91_cpu_platdata *plat = dev_get_platdata(dev);
+	struct at91_cpu_platdata *plat = dev_get_plat(dev);
 	struct clk clk;
 	ulong rate;
 	int ret;
diff --git a/drivers/cpu/imx8_cpu.c b/drivers/cpu/imx8_cpu.c
index 1df43b8..c9f7449 100644
--- a/drivers/cpu/imx8_cpu.c
+++ b/drivers/cpu/imx8_cpu.c
@@ -55,7 +55,7 @@
 
 static void set_core_data(struct udevice *dev)
 {
-	struct cpu_imx_platdata *plat = dev_get_platdata(dev);
+	struct cpu_imx_platdata *plat = dev_get_plat(dev);
 
 	if (device_is_compatible(dev, "arm,cortex-a35")) {
 		plat->cpu_rsrc = SC_R_A35;
@@ -102,7 +102,7 @@
 
 int cpu_imx_get_desc(const struct udevice *dev, char *buf, int size)
 {
-	struct cpu_imx_platdata *plat = dev_get_platdata(dev);
+	struct cpu_imx_platdata *plat = dev_get_plat(dev);
 	int ret, temp;
 
 	if (size < 100)
@@ -128,7 +128,7 @@
 
 static int cpu_imx_get_info(const struct udevice *dev, struct cpu_info *info)
 {
-	struct cpu_imx_platdata *plat = dev_get_platdata(dev);
+	struct cpu_imx_platdata *plat = dev_get_plat(dev);
 
 	info->cpu_freq = plat->freq_mhz * 1000;
 	info->features = BIT(CPU_FEAT_L1_CACHE) | BIT(CPU_FEAT_MMU);
@@ -165,7 +165,7 @@
 
 static int cpu_imx_is_current(struct udevice *dev)
 {
-	struct cpu_imx_platdata *plat = dev_get_platdata(dev);
+	struct cpu_imx_platdata *plat = dev_get_plat(dev);
 
 	if (plat->mpidr == (read_mpidr() & 0xffff))
 		return 1;
@@ -190,7 +190,7 @@
 
 static ulong imx8_get_cpu_rate(struct udevice *dev)
 {
-	struct cpu_imx_platdata *plat = dev_get_platdata(dev);
+	struct cpu_imx_platdata *plat = dev_get_plat(dev);
 	ulong rate;
 	int ret;
 
@@ -206,7 +206,7 @@
 
 static int imx8_cpu_probe(struct udevice *dev)
 {
-	struct cpu_imx_platdata *plat = dev_get_platdata(dev);
+	struct cpu_imx_platdata *plat = dev_get_plat(dev);
 	u32 cpurev;
 
 	set_core_data(dev);
diff --git a/drivers/demo/demo-shape.c b/drivers/demo/demo-shape.c
index cc99f3e..b13a4ee 100644
--- a/drivers/demo/demo-shape.c
+++ b/drivers/demo/demo-shape.c
@@ -28,7 +28,7 @@
 /* Crazy little function to draw shapes on the console */
 static int shape_hello(struct udevice *dev, int ch)
 {
-	const struct dm_demo_pdata *pdata = dev_get_platdata(dev);
+	const struct dm_demo_pdata *pdata = dev_get_plat(dev);
 	struct shape_data *data = dev_get_priv(dev);
 	static const struct shape {
 		int start;
@@ -142,7 +142,7 @@
 
 static int shape_ofdata_to_platdata(struct udevice *dev)
 {
-	struct dm_demo_pdata *pdata = dev_get_platdata(dev);
+	struct dm_demo_pdata *pdata = dev_get_plat(dev);
 	int ret;
 
 	/* Parse the data that is common with all demo devices */
diff --git a/drivers/demo/demo-simple.c b/drivers/demo/demo-simple.c
index 950e286..39b370c 100644
--- a/drivers/demo/demo-simple.c
+++ b/drivers/demo/demo-simple.c
@@ -14,7 +14,7 @@
 
 static int simple_hello(struct udevice *dev, int ch)
 {
-	const struct dm_demo_pdata *pdata = dev_get_platdata(dev);
+	const struct dm_demo_pdata *pdata = dev_get_plat(dev);
 
 	printf("Hello from %08x: %s %d\n", (uint)map_to_sysmem(dev), pdata->colour,
 	       pdata->sides);
diff --git a/drivers/demo/demo-uclass.c b/drivers/demo/demo-uclass.c
index 6c36f03..a020ecb 100644
--- a/drivers/demo/demo-uclass.c
+++ b/drivers/demo/demo-uclass.c
@@ -65,7 +65,7 @@
 
 int demo_parse_dt(struct udevice *dev)
 {
-	struct dm_demo_pdata *pdata = dev_get_platdata(dev);
+	struct dm_demo_pdata *pdata = dev_get_plat(dev);
 	int dn = dev_of_offset(dev);
 
 	pdata->sides = fdtdec_get_int(gd->fdt_blob, dn, "sides", 0);
diff --git a/drivers/gpio/altera_pio.c b/drivers/gpio/altera_pio.c
index f4e18e1..0b1861a 100644
--- a/drivers/gpio/altera_pio.c
+++ b/drivers/gpio/altera_pio.c
@@ -27,7 +27,7 @@
 
 static int altera_pio_direction_input(struct udevice *dev, unsigned pin)
 {
-	struct altera_pio_platdata *plat = dev_get_platdata(dev);
+	struct altera_pio_platdata *plat = dev_get_plat(dev);
 	struct altera_pio_regs *const regs = plat->regs;
 
 	clrbits_le32(&regs->direction, 1 << pin);
@@ -38,7 +38,7 @@
 static int altera_pio_direction_output(struct udevice *dev, unsigned pin,
 				     int val)
 {
-	struct altera_pio_platdata *plat = dev_get_platdata(dev);
+	struct altera_pio_platdata *plat = dev_get_plat(dev);
 	struct altera_pio_regs *const regs = plat->regs;
 
 	if (val)
@@ -53,7 +53,7 @@
 
 static int altera_pio_get_value(struct udevice *dev, unsigned pin)
 {
-	struct altera_pio_platdata *plat = dev_get_platdata(dev);
+	struct altera_pio_platdata *plat = dev_get_plat(dev);
 	struct altera_pio_regs *const regs = plat->regs;
 
 	return !!(readl(&regs->data) & (1 << pin));
@@ -62,7 +62,7 @@
 
 static int altera_pio_set_value(struct udevice *dev, unsigned pin, int val)
 {
-	struct altera_pio_platdata *plat = dev_get_platdata(dev);
+	struct altera_pio_platdata *plat = dev_get_plat(dev);
 	struct altera_pio_regs *const regs = plat->regs;
 
 	if (val)
@@ -76,7 +76,7 @@
 static int altera_pio_probe(struct udevice *dev)
 {
 	struct gpio_dev_priv *uc_priv = dev_get_uclass_priv(dev);
-	struct altera_pio_platdata *plat = dev_get_platdata(dev);
+	struct altera_pio_platdata *plat = dev_get_plat(dev);
 
 	uc_priv->gpio_count = plat->gpio_count;
 	uc_priv->bank_name = plat->bank_name;
@@ -86,7 +86,7 @@
 
 static int altera_pio_ofdata_to_platdata(struct udevice *dev)
 {
-	struct altera_pio_platdata *plat = dev_get_platdata(dev);
+	struct altera_pio_platdata *plat = dev_get_plat(dev);
 
 	plat->regs = map_physmem(dev_read_addr(dev),
 				 sizeof(struct altera_pio_regs),
diff --git a/drivers/gpio/at91_gpio.c b/drivers/gpio/at91_gpio.c
index 4b25af7..7b604e4 100644
--- a/drivers/gpio/at91_gpio.c
+++ b/drivers/gpio/at91_gpio.c
@@ -590,7 +590,7 @@
 static int at91_gpio_probe(struct udevice *dev)
 {
 	struct at91_port_priv *port = dev_get_priv(dev);
-	struct at91_port_platdata *plat = dev_get_platdata(dev);
+	struct at91_port_platdata *plat = dev_get_plat(dev);
 	struct gpio_dev_priv *uc_priv = dev_get_uclass_priv(dev);
 	struct clk clk;
 	int ret;
diff --git a/drivers/gpio/atmel_pio4.c b/drivers/gpio/atmel_pio4.c
index 7a221b4..e25115f 100644
--- a/drivers/gpio/atmel_pio4.c
+++ b/drivers/gpio/atmel_pio4.c
@@ -183,7 +183,7 @@
 static struct atmel_pio4_port *atmel_pio4_bank_base(struct udevice *dev,
 						    u32 bank)
 {
-	struct atmel_pio4_platdata *plat = dev_get_platdata(dev);
+	struct atmel_pio4_platdata *plat = dev_get_plat(dev);
 	struct atmel_pio4_port *port_base =
 			(struct atmel_pio4_port *)((u32)plat->reg_base +
 			ATMEL_PIO_BANK_OFFSET * bank);
@@ -281,7 +281,7 @@
 
 static int atmel_pio4_probe(struct udevice *dev)
 {
-	struct atmel_pio4_platdata *plat = dev_get_platdata(dev);
+	struct atmel_pio4_platdata *plat = dev_get_plat(dev);
 	struct gpio_dev_priv *uc_priv = dev_get_uclass_priv(dev);
 	struct atmel_pioctrl_data *pioctrl_data;
 	struct clk clk;
diff --git a/drivers/gpio/bcm2835_gpio.c b/drivers/gpio/bcm2835_gpio.c
index e80830c..7c3f24e 100644
--- a/drivers/gpio/bcm2835_gpio.c
+++ b/drivers/gpio/bcm2835_gpio.c
@@ -102,7 +102,7 @@
 static int bcm2835_gpio_probe(struct udevice *dev)
 {
 	struct bcm2835_gpios *gpios = dev_get_priv(dev);
-	struct bcm2835_gpio_platdata *plat = dev_get_platdata(dev);
+	struct bcm2835_gpio_platdata *plat = dev_get_plat(dev);
 	struct gpio_dev_priv *uc_priv = dev_get_uclass_priv(dev);
 
 	uc_priv->bank_name = "GPIO";
@@ -118,7 +118,7 @@
 #if CONFIG_IS_ENABLED(OF_CONTROL)
 static int bcm2835_gpio_ofdata_to_platdata(struct udevice *dev)
 {
-	struct bcm2835_gpio_platdata *plat = dev_get_platdata(dev);
+	struct bcm2835_gpio_platdata *plat = dev_get_plat(dev);
 	fdt_addr_t addr;
 
 	addr = dev_read_addr(dev);
diff --git a/drivers/gpio/da8xx_gpio.c b/drivers/gpio/da8xx_gpio.c
index c8b12ac..ff61a4c 100644
--- a/drivers/gpio/da8xx_gpio.c
+++ b/drivers/gpio/da8xx_gpio.c
@@ -522,7 +522,7 @@
 static int davinci_gpio_probe(struct udevice *dev)
 {
 	struct davinci_gpio_bank *bank = dev_get_priv(dev);
-	struct davinci_gpio_platdata *plat = dev_get_platdata(dev);
+	struct davinci_gpio_platdata *plat = dev_get_plat(dev);
 	struct gpio_dev_priv *uc_priv = dev_get_uclass_priv(dev);
 	const void *fdt = gd->fdt_blob;
 	int node = dev_of_offset(dev);
@@ -542,7 +542,7 @@
 
 static int davinci_gpio_ofdata_to_platdata(struct udevice *dev)
 {
-	struct davinci_gpio_platdata *plat = dev_get_platdata(dev);
+	struct davinci_gpio_platdata *plat = dev_get_plat(dev);
 	fdt_addr_t addr;
 
 	addr = dev_read_addr(dev);
diff --git a/drivers/gpio/dwapb_gpio.c b/drivers/gpio/dwapb_gpio.c
index 6639e2e..42158bd 100644
--- a/drivers/gpio/dwapb_gpio.c
+++ b/drivers/gpio/dwapb_gpio.c
@@ -45,7 +45,7 @@
 
 static int dwapb_gpio_direction_input(struct udevice *dev, unsigned pin)
 {
-	struct gpio_dwapb_platdata *plat = dev_get_platdata(dev);
+	struct gpio_dwapb_platdata *plat = dev_get_plat(dev);
 
 	clrbits_le32(plat->base + GPIO_SWPORT_DDR(plat->bank), 1 << pin);
 	return 0;
@@ -54,7 +54,7 @@
 static int dwapb_gpio_direction_output(struct udevice *dev, unsigned pin,
 				     int val)
 {
-	struct gpio_dwapb_platdata *plat = dev_get_platdata(dev);
+	struct gpio_dwapb_platdata *plat = dev_get_plat(dev);
 
 	setbits_le32(plat->base + GPIO_SWPORT_DDR(plat->bank), 1 << pin);
 
@@ -68,7 +68,7 @@
 
 static int dwapb_gpio_set_value(struct udevice *dev, unsigned pin, int val)
 {
-	struct gpio_dwapb_platdata *plat = dev_get_platdata(dev);
+	struct gpio_dwapb_platdata *plat = dev_get_plat(dev);
 
 	if (val)
 		setbits_le32(plat->base + GPIO_SWPORT_DR(plat->bank), 1 << pin);
@@ -80,7 +80,7 @@
 
 static int dwapb_gpio_get_function(struct udevice *dev, unsigned offset)
 {
-	struct gpio_dwapb_platdata *plat = dev_get_platdata(dev);
+	struct gpio_dwapb_platdata *plat = dev_get_plat(dev);
 	u32 gpio;
 
 	gpio = readl(plat->base + GPIO_SWPORT_DDR(plat->bank));
@@ -93,7 +93,7 @@
 
 static int dwapb_gpio_get_value(struct udevice *dev, unsigned pin)
 {
-	struct gpio_dwapb_platdata *plat = dev_get_platdata(dev);
+	struct gpio_dwapb_platdata *plat = dev_get_plat(dev);
 	u32 value;
 
 	if (dwapb_gpio_get_function(dev, pin) == GPIOF_OUTPUT)
@@ -156,7 +156,7 @@
 
 static int gpio_dwapb_bind(struct udevice *dev)
 {
-	struct gpio_dwapb_platdata *plat = dev_get_platdata(dev);
+	struct gpio_dwapb_platdata *plat = dev_get_plat(dev);
 	struct udevice *subdev;
 	fdt_addr_t base;
 	int ret, bank = 0;
@@ -215,7 +215,7 @@
 
 static int gpio_dwapb_remove(struct udevice *dev)
 {
-	struct gpio_dwapb_platdata *plat = dev_get_platdata(dev);
+	struct gpio_dwapb_platdata *plat = dev_get_plat(dev);
 	struct gpio_dwapb_priv *priv = dev_get_priv(dev);
 
 	if (!plat && priv)
diff --git a/drivers/gpio/gpio-uclass.c b/drivers/gpio/gpio-uclass.c
index fdb3a45..4eedd4f 100644
--- a/drivers/gpio/gpio-uclass.c
+++ b/drivers/gpio/gpio-uclass.c
@@ -241,7 +241,7 @@
 
 static int gpio_hog_ofdata_to_platdata(struct udevice *dev)
 {
-	struct gpio_hog_data *plat = dev_get_platdata(dev);
+	struct gpio_hog_data *plat = dev_get_plat(dev);
 	const char *nodename;
 	int ret;
 
@@ -272,7 +272,7 @@
 
 static int gpio_hog_probe(struct udevice *dev)
 {
-	struct gpio_hog_data *plat = dev_get_platdata(dev);
+	struct gpio_hog_data *plat = dev_get_plat(dev);
 	struct gpio_hog_priv *priv = dev_get_priv(dev);
 	int ret;
 
diff --git a/drivers/gpio/hi6220_gpio.c b/drivers/gpio/hi6220_gpio.c
index c49dc78..02a3782 100644
--- a/drivers/gpio/hi6220_gpio.c
+++ b/drivers/gpio/hi6220_gpio.c
@@ -66,7 +66,7 @@
 static int hi6220_gpio_probe(struct udevice *dev)
 {
 	struct gpio_bank *bank = dev_get_priv(dev);
-	struct hikey_gpio_platdata *plat = dev_get_platdata(dev);
+	struct hikey_gpio_platdata *plat = dev_get_plat(dev);
 	struct gpio_dev_priv *uc_priv = dev->uclass_priv;
 	char name[18], *str;
 
diff --git a/drivers/gpio/imx_rgpio2p.c b/drivers/gpio/imx_rgpio2p.c
index 80e934e..70ced75 100644
--- a/drivers/gpio/imx_rgpio2p.c
+++ b/drivers/gpio/imx_rgpio2p.c
@@ -132,7 +132,7 @@
 static int imx_rgpio2p_probe(struct udevice *dev)
 {
 	struct imx_rgpio2p_data *bank = dev_get_priv(dev);
-	struct imx_rgpio2p_plat *plat = dev_get_platdata(dev);
+	struct imx_rgpio2p_plat *plat = dev_get_plat(dev);
 	struct gpio_dev_priv *uc_priv = dev_get_uclass_priv(dev);
 	int banknum;
 	char name[18], *str;
diff --git a/drivers/gpio/intel_broadwell_gpio.c b/drivers/gpio/intel_broadwell_gpio.c
index b05233f..2b9e1a2 100644
--- a/drivers/gpio/intel_broadwell_gpio.c
+++ b/drivers/gpio/intel_broadwell_gpio.c
@@ -117,7 +117,7 @@
 
 static int broadwell_gpio_probe(struct udevice *dev)
 {
-	struct broadwell_bank_platdata *plat = dev_get_platdata(dev);
+	struct broadwell_bank_platdata *plat = dev_get_plat(dev);
 	struct gpio_dev_priv *uc_priv = dev_get_uclass_priv(dev);
 	struct broadwell_bank_priv *priv = dev_get_priv(dev);
 	struct udevice *pinctrl;
@@ -141,7 +141,7 @@
 
 static int broadwell_gpio_ofdata_to_platdata(struct udevice *dev)
 {
-	struct broadwell_bank_platdata *plat = dev_get_platdata(dev);
+	struct broadwell_bank_platdata *plat = dev_get_plat(dev);
 	u32 gpiobase;
 	int bank;
 	int ret;
diff --git a/drivers/gpio/intel_ich6_gpio.c b/drivers/gpio/intel_ich6_gpio.c
index 3fdc981..cfb2dda 100644
--- a/drivers/gpio/intel_ich6_gpio.c
+++ b/drivers/gpio/intel_ich6_gpio.c
@@ -95,7 +95,7 @@
 
 static int gpio_ich6_ofdata_to_platdata(struct udevice *dev)
 {
-	struct ich6_bank_platdata *plat = dev_get_platdata(dev);
+	struct ich6_bank_platdata *plat = dev_get_plat(dev);
 	u32 gpiobase;
 	int offset;
 	int ret;
@@ -119,7 +119,7 @@
 
 static int ich6_gpio_probe(struct udevice *dev)
 {
-	struct ich6_bank_platdata *plat = dev_get_platdata(dev);
+	struct ich6_bank_platdata *plat = dev_get_plat(dev);
 	struct gpio_dev_priv *uc_priv = dev_get_uclass_priv(dev);
 	struct ich6_bank_priv *bank = dev_get_priv(dev);
 	const void *prop;
diff --git a/drivers/gpio/iproc_gpio.c b/drivers/gpio/iproc_gpio.c
index 73f74ed..3cf1663 100644
--- a/drivers/gpio/iproc_gpio.c
+++ b/drivers/gpio/iproc_gpio.c
@@ -127,7 +127,7 @@
  */
 static int iproc_get_gpio_pctrl_mapping(struct udevice *dev)
 {
-	struct iproc_gpio_platdata *plat = dev_get_platdata(dev);
+	struct iproc_gpio_platdata *plat = dev_get_plat(dev);
 	struct iproc_gpio_pctrl_map *range = NULL;
 	struct ofnode_phandle_args args;
 	int index = 0, ret;
@@ -153,7 +153,7 @@
 
 static int iproc_gpio_request(struct udevice *dev, u32 gpio, const char *label)
 {
-	struct iproc_gpio_platdata *plat = dev_get_platdata(dev);
+	struct iproc_gpio_platdata *plat = dev_get_plat(dev);
 	u32 pctrl;
 
 	/* nothing to do if there is no corresponding pinctrl device */
@@ -167,7 +167,7 @@
 
 static int iproc_gpio_direction_input(struct udevice *dev, u32 gpio)
 {
-	struct iproc_gpio_platdata *plat = dev_get_platdata(dev);
+	struct iproc_gpio_platdata *plat = dev_get_plat(dev);
 
 	iproc_gpio_set_bit(plat, OUT_EN_OFFSET, gpio, false);
 	dev_dbg(dev, "gpio:%u set input\n", gpio);
@@ -177,7 +177,7 @@
 
 static int iproc_gpio_direction_output(struct udevice *dev, u32 gpio, int value)
 {
-	struct iproc_gpio_platdata *plat = dev_get_platdata(dev);
+	struct iproc_gpio_platdata *plat = dev_get_plat(dev);
 
 	iproc_gpio_set_bit(plat, OUT_EN_OFFSET, gpio, true);
 	iproc_gpio_set_bit(plat, DATA_OUT_OFFSET, gpio, value);
@@ -188,7 +188,7 @@
 
 static int iproc_gpio_get_value(struct udevice *dev, u32 gpio)
 {
-	struct iproc_gpio_platdata *plat = dev_get_platdata(dev);
+	struct iproc_gpio_platdata *plat = dev_get_plat(dev);
 	int value;
 
 	value = iproc_gpio_get_bit(plat, DATA_IN_OFFSET, gpio);
@@ -199,7 +199,7 @@
 
 static int iproc_gpio_set_value(struct udevice *dev, u32 gpio, int value)
 {
-	struct iproc_gpio_platdata *plat = dev_get_platdata(dev);
+	struct iproc_gpio_platdata *plat = dev_get_plat(dev);
 
 	if (iproc_gpio_get_bit(plat, OUT_EN_OFFSET, gpio))
 		iproc_gpio_set_bit(plat, DATA_OUT_OFFSET, gpio, value);
@@ -210,7 +210,7 @@
 
 static int iproc_gpio_get_function(struct udevice *dev, u32 gpio)
 {
-	struct iproc_gpio_platdata *plat = dev_get_platdata(dev);
+	struct iproc_gpio_platdata *plat = dev_get_plat(dev);
 
 	if (iproc_gpio_get_bit(plat, OUT_EN_OFFSET, gpio))
 		return GPIOF_OUTPUT;
@@ -220,7 +220,7 @@
 
 static int iproc_gpio_ofdata_to_platdata(struct udevice *dev)
 {
-	struct iproc_gpio_platdata *plat = dev_get_platdata(dev);
+	struct iproc_gpio_platdata *plat = dev_get_plat(dev);
 	struct gpio_dev_priv *uc_priv = dev_get_uclass_priv(dev);
 	int ret;
 	char name[10];
diff --git a/drivers/gpio/mpc83xx_spisel_boot.c b/drivers/gpio/mpc83xx_spisel_boot.c
index dae94b5..245b43f 100644
--- a/drivers/gpio/mpc83xx_spisel_boot.c
+++ b/drivers/gpio/mpc83xx_spisel_boot.c
@@ -63,7 +63,7 @@
 #if CONFIG_IS_ENABLED(OF_CONTROL)
 static int mpc83xx_spisel_boot_ofdata_to_platdata(struct udevice *dev)
 {
-	struct mpc8xxx_gpio_plat *plat = dev_get_platdata(dev);
+	struct mpc8xxx_gpio_plat *plat = dev_get_plat(dev);
 	fdt_addr_t addr;
 	u32 reg[2];
 
@@ -81,7 +81,7 @@
 static int mpc83xx_spisel_boot_platdata_to_priv(struct udevice *dev)
 {
 	struct mpc83xx_spisel_boot *priv = dev_get_priv(dev);
-	struct mpc8xxx_gpio_plat *plat = dev_get_platdata(dev);
+	struct mpc8xxx_gpio_plat *plat = dev_get_plat(dev);
 	unsigned long size = plat->size;
 	ulong driver_data = dev_get_driver_data(dev);
 
diff --git a/drivers/gpio/mpc8xxx_gpio.c b/drivers/gpio/mpc8xxx_gpio.c
index 6b64fc0..0933b90 100644
--- a/drivers/gpio/mpc8xxx_gpio.c
+++ b/drivers/gpio/mpc8xxx_gpio.c
@@ -185,7 +185,7 @@
 #if CONFIG_IS_ENABLED(OF_CONTROL)
 static int mpc8xxx_gpio_ofdata_to_platdata(struct udevice *dev)
 {
-	struct mpc8xxx_gpio_plat *plat = dev_get_platdata(dev);
+	struct mpc8xxx_gpio_plat *plat = dev_get_plat(dev);
 	struct mpc8xxx_gpio_data *data = dev_get_priv(dev);
 	fdt_addr_t addr;
 	u32 i;
@@ -222,7 +222,7 @@
 static int mpc8xxx_gpio_platdata_to_priv(struct udevice *dev)
 {
 	struct mpc8xxx_gpio_data *priv = dev_get_priv(dev);
-	struct mpc8xxx_gpio_plat *plat = dev_get_platdata(dev);
+	struct mpc8xxx_gpio_plat *plat = dev_get_plat(dev);
 	unsigned long size = plat->size;
 	ulong driver_data = dev_get_driver_data(dev);
 
diff --git a/drivers/gpio/mt7621_gpio.c b/drivers/gpio/mt7621_gpio.c
index 3a06d17..e48ddb5 100644
--- a/drivers/gpio/mt7621_gpio.c
+++ b/drivers/gpio/mt7621_gpio.c
@@ -51,7 +51,7 @@
 
 static int mediatek_gpio_get_value(struct udevice *dev, unsigned int offset)
 {
-	struct mediatek_gpio_platdata *plat = dev_get_platdata(dev);
+	struct mediatek_gpio_platdata *plat = dev_get_plat(dev);
 
 	return !!(ioread32(mediatek_gpio_membase +
 			   reg_offs(plat, GPIO_REG_DATA)) & BIT(offset));
@@ -60,7 +60,7 @@
 static int mediatek_gpio_set_value(struct udevice *dev, unsigned int offset,
 				   int value)
 {
-	struct mediatek_gpio_platdata *plat = dev_get_platdata(dev);
+	struct mediatek_gpio_platdata *plat = dev_get_plat(dev);
 
 	iowrite32(BIT(offset), mediatek_gpio_membase +
 		  reg_offs(plat, value ? GPIO_REG_DSET : GPIO_REG_DCLR));
@@ -70,7 +70,7 @@
 
 static int mediatek_gpio_direction_input(struct udevice *dev, unsigned int offset)
 {
-	struct mediatek_gpio_platdata *plat = dev_get_platdata(dev);
+	struct mediatek_gpio_platdata *plat = dev_get_plat(dev);
 
 	clrbits_le32(mediatek_gpio_membase + reg_offs(plat, GPIO_REG_CTRL),
 		     BIT(offset));
@@ -81,7 +81,7 @@
 static int mediatek_gpio_direction_output(struct udevice *dev, unsigned int offset,
 					  int value)
 {
-	struct mediatek_gpio_platdata *plat = dev_get_platdata(dev);
+	struct mediatek_gpio_platdata *plat = dev_get_plat(dev);
 
 	setbits_le32(mediatek_gpio_membase + reg_offs(plat, GPIO_REG_CTRL),
 		     BIT(offset));
@@ -92,7 +92,7 @@
 
 static int mediatek_gpio_get_function(struct udevice *dev, unsigned int offset)
 {
-	struct mediatek_gpio_platdata *plat = dev_get_platdata(dev);
+	struct mediatek_gpio_platdata *plat = dev_get_plat(dev);
 	u32 t;
 
 	t = ioread32(mediatek_gpio_membase + reg_offs(plat, GPIO_REG_CTRL));
@@ -112,7 +112,7 @@
 
 static int gpio_mediatek_probe(struct udevice *dev)
 {
-	struct mediatek_gpio_platdata *plat = dev_get_platdata(dev);
+	struct mediatek_gpio_platdata *plat = dev_get_plat(dev);
 	struct gpio_dev_priv *uc_priv = dev_get_uclass_priv(dev);
 
 	/* Tell the uclass how many GPIOs we have */
diff --git a/drivers/gpio/mxc_gpio.c b/drivers/gpio/mxc_gpio.c
index 55fadad..409793d 100644
--- a/drivers/gpio/mxc_gpio.c
+++ b/drivers/gpio/mxc_gpio.c
@@ -281,7 +281,7 @@
 static int mxc_gpio_probe(struct udevice *dev)
 {
 	struct mxc_bank_info *bank = dev_get_priv(dev);
-	struct mxc_gpio_plat *plat = dev_get_platdata(dev);
+	struct mxc_gpio_plat *plat = dev_get_plat(dev);
 	struct gpio_dev_priv *uc_priv = dev_get_uclass_priv(dev);
 	int banknum;
 	char name[18], *str;
@@ -309,7 +309,7 @@
 
 static int mxc_gpio_ofdata_to_platdata(struct udevice *dev)
 {
-	struct mxc_gpio_plat *plat = dev_get_platdata(dev);
+	struct mxc_gpio_plat *plat = dev_get_plat(dev);
 	if (!CONFIG_IS_ENABLED(OF_PLATDATA)) {
 		fdt_addr_t addr;
 		addr = dev_read_addr(dev);
diff --git a/drivers/gpio/mxs_gpio.c b/drivers/gpio/mxs_gpio.c
index 581d161..7ef34c6 100644
--- a/drivers/gpio/mxs_gpio.c
+++ b/drivers/gpio/mxs_gpio.c
@@ -235,7 +235,7 @@
 
 static int mxs_gpio_probe(struct udevice *dev)
 {
-	struct mxs_gpio_platdata *plat = dev_get_platdata(dev);
+	struct mxs_gpio_platdata *plat = dev_get_plat(dev);
 	struct mxs_gpio_priv *priv = dev_get_priv(dev);
 	struct gpio_dev_priv *uc_priv = dev_get_uclass_priv(dev);
 	char name[16], *str;
diff --git a/drivers/gpio/nx_gpio.c b/drivers/gpio/nx_gpio.c
index f0bbb9e..d69a22a 100644
--- a/drivers/gpio/nx_gpio.c
+++ b/drivers/gpio/nx_gpio.c
@@ -44,7 +44,7 @@
 
 static int nx_alive_gpio_is_check(struct udevice *dev)
 {
-	struct nx_gpio_platdata *plat = dev_get_platdata(dev);
+	struct nx_gpio_platdata *plat = dev_get_plat(dev);
 	const char *bank_name = plat->bank_name;
 
 	if (!strcmp(bank_name, "gpio_alv"))
@@ -55,7 +55,7 @@
 
 static int nx_alive_gpio_direction_input(struct udevice *dev, unsigned int pin)
 {
-	struct nx_gpio_platdata *plat = dev_get_platdata(dev);
+	struct nx_gpio_platdata *plat = dev_get_plat(dev);
 	struct nx_alive_gpio_regs *const regs = plat->regs;
 
 	setbits_le32(&regs->outputenb_reset, 1 << pin);
@@ -66,7 +66,7 @@
 static int nx_alive_gpio_direction_output(struct udevice *dev, unsigned int pin,
 					  int val)
 {
-	struct nx_gpio_platdata *plat = dev_get_platdata(dev);
+	struct nx_gpio_platdata *plat = dev_get_plat(dev);
 	struct nx_alive_gpio_regs *const regs = plat->regs;
 
 	if (val)
@@ -81,7 +81,7 @@
 
 static int nx_alive_gpio_get_value(struct udevice *dev, unsigned int pin)
 {
-	struct nx_gpio_platdata *plat = dev_get_platdata(dev);
+	struct nx_gpio_platdata *plat = dev_get_plat(dev);
 	struct nx_alive_gpio_regs *const regs = plat->regs;
 	unsigned int mask = 1UL << pin;
 	unsigned int value;
@@ -94,7 +94,7 @@
 static int nx_alive_gpio_set_value(struct udevice *dev, unsigned int pin,
 				   int val)
 {
-	struct nx_gpio_platdata *plat = dev_get_platdata(dev);
+	struct nx_gpio_platdata *plat = dev_get_plat(dev);
 	struct nx_alive_gpio_regs *const regs = plat->regs;
 
 	if (val)
@@ -107,7 +107,7 @@
 
 static int nx_alive_gpio_get_function(struct udevice *dev, unsigned int pin)
 {
-	struct nx_gpio_platdata *plat = dev_get_platdata(dev);
+	struct nx_gpio_platdata *plat = dev_get_plat(dev);
 	struct nx_alive_gpio_regs *const regs = plat->regs;
 	unsigned int mask = (1UL << pin);
 	unsigned int output;
@@ -122,7 +122,7 @@
 
 static int nx_gpio_direction_input(struct udevice *dev, unsigned int pin)
 {
-	struct nx_gpio_platdata *plat = dev_get_platdata(dev);
+	struct nx_gpio_platdata *plat = dev_get_plat(dev);
 	struct nx_gpio_regs *const regs = plat->regs;
 
 	if (nx_alive_gpio_is_check(dev))
@@ -136,7 +136,7 @@
 static int nx_gpio_direction_output(struct udevice *dev, unsigned int pin,
 				    int val)
 {
-	struct nx_gpio_platdata *plat = dev_get_platdata(dev);
+	struct nx_gpio_platdata *plat = dev_get_plat(dev);
 	struct nx_gpio_regs *const regs = plat->regs;
 
 	if (nx_alive_gpio_is_check(dev))
@@ -154,7 +154,7 @@
 
 static int nx_gpio_get_value(struct udevice *dev, unsigned int pin)
 {
-	struct nx_gpio_platdata *plat = dev_get_platdata(dev);
+	struct nx_gpio_platdata *plat = dev_get_plat(dev);
 	struct nx_gpio_regs *const regs = plat->regs;
 	unsigned int mask = 1UL << pin;
 	unsigned int value;
@@ -169,7 +169,7 @@
 
 static int nx_gpio_set_value(struct udevice *dev, unsigned int pin, int val)
 {
-	struct nx_gpio_platdata *plat = dev_get_platdata(dev);
+	struct nx_gpio_platdata *plat = dev_get_plat(dev);
 	struct nx_gpio_regs *const regs = plat->regs;
 
 	if (nx_alive_gpio_is_check(dev))
@@ -185,7 +185,7 @@
 
 static int nx_gpio_get_function(struct udevice *dev, unsigned int pin)
 {
-	struct nx_gpio_platdata *plat = dev_get_platdata(dev);
+	struct nx_gpio_platdata *plat = dev_get_plat(dev);
 	struct nx_gpio_regs *const regs = plat->regs;
 	unsigned int mask = (1UL << pin);
 	unsigned int output;
@@ -204,7 +204,7 @@
 static int nx_gpio_probe(struct udevice *dev)
 {
 	struct gpio_dev_priv *uc_priv = dev_get_uclass_priv(dev);
-	struct nx_gpio_platdata *plat = dev_get_platdata(dev);
+	struct nx_gpio_platdata *plat = dev_get_plat(dev);
 
 	uc_priv->gpio_count = plat->gpio_count;
 	uc_priv->bank_name = plat->bank_name;
@@ -214,7 +214,7 @@
 
 static int nx_gpio_ofdata_to_platdata(struct udevice *dev)
 {
-	struct nx_gpio_platdata *plat = dev_get_platdata(dev);
+	struct nx_gpio_platdata *plat = dev_get_plat(dev);
 
 	plat->regs = map_physmem(devfdt_get_addr(dev),
 				 sizeof(struct nx_gpio_regs),
diff --git a/drivers/gpio/omap_gpio.c b/drivers/gpio/omap_gpio.c
index 7be1beb..6581dca 100644
--- a/drivers/gpio/omap_gpio.c
+++ b/drivers/gpio/omap_gpio.c
@@ -285,7 +285,7 @@
 static int omap_gpio_probe(struct udevice *dev)
 {
 	struct gpio_bank *bank = dev_get_priv(dev);
-	struct omap_gpio_platdata *plat = dev_get_platdata(dev);
+	struct omap_gpio_platdata *plat = dev_get_plat(dev);
 	struct gpio_dev_priv *uc_priv = dev_get_uclass_priv(dev);
 	char name[18], *str;
 
@@ -302,7 +302,7 @@
 #if !CONFIG_IS_ENABLED(OF_CONTROL)
 static int omap_gpio_bind(struct udevice *dev)
 {
-	struct omap_gpio_platdata *plat = dev_get_platdata(dev);
+	struct omap_gpio_platdata *plat = dev_get_plat(dev);
 	fdt_addr_t base_addr;
 
 	if (plat)
@@ -344,7 +344,7 @@
 
 static int omap_gpio_ofdata_to_platdata(struct udevice *dev)
 {
-	struct omap_gpio_platdata *plat = dev_get_platdata(dev);
+	struct omap_gpio_platdata *plat = dev_get_plat(dev);
 	fdt_addr_t addr;
 
 	addr = dev_read_addr(dev);
diff --git a/drivers/gpio/pca953x_gpio.c b/drivers/gpio/pca953x_gpio.c
index 239c0f7..dc8911a 100644
--- a/drivers/gpio/pca953x_gpio.c
+++ b/drivers/gpio/pca953x_gpio.c
@@ -76,7 +76,7 @@
 static int pca953x_write_single(struct udevice *dev, int reg, u8 val,
 				int offset)
 {
-	struct pca953x_info *info = dev_get_platdata(dev);
+	struct pca953x_info *info = dev_get_plat(dev);
 	int bank_shift = fls((info->gpio_count - 1) / BANK_SZ);
 	int off = offset / BANK_SZ;
 	int ret = 0;
@@ -93,7 +93,7 @@
 static int pca953x_read_single(struct udevice *dev, int reg, u8 *val,
 			       int offset)
 {
-	struct pca953x_info *info = dev_get_platdata(dev);
+	struct pca953x_info *info = dev_get_plat(dev);
 	int bank_shift = fls((info->gpio_count - 1) / BANK_SZ);
 	int off = offset / BANK_SZ;
 	int ret;
@@ -112,7 +112,7 @@
 
 static int pca953x_read_regs(struct udevice *dev, int reg, u8 *val)
 {
-	struct pca953x_info *info = dev_get_platdata(dev);
+	struct pca953x_info *info = dev_get_plat(dev);
 	int ret = 0;
 
 	if (info->gpio_count <= 8) {
@@ -137,7 +137,7 @@
 
 static int pca953x_write_regs(struct udevice *dev, int reg, u8 *val)
 {
-	struct pca953x_info *info = dev_get_platdata(dev);
+	struct pca953x_info *info = dev_get_plat(dev);
 	int ret = 0;
 
 	if (info->gpio_count <= 8) {
@@ -160,7 +160,7 @@
 
 static int pca953x_is_output(struct udevice *dev, int offset)
 {
-	struct pca953x_info *info = dev_get_platdata(dev);
+	struct pca953x_info *info = dev_get_plat(dev);
 
 	int bank = offset / BANK_SZ;
 	int off = offset % BANK_SZ;
@@ -185,7 +185,7 @@
 
 static int pca953x_set_value(struct udevice *dev, uint offset, int value)
 {
-	struct pca953x_info *info = dev_get_platdata(dev);
+	struct pca953x_info *info = dev_get_plat(dev);
 	int bank = offset / BANK_SZ;
 	int off = offset % BANK_SZ;
 	u8 val;
@@ -207,7 +207,7 @@
 
 static int pca953x_set_direction(struct udevice *dev, uint offset, int dir)
 {
-	struct pca953x_info *info = dev_get_platdata(dev);
+	struct pca953x_info *info = dev_get_plat(dev);
 	int bank = offset / BANK_SZ;
 	int off = offset % BANK_SZ;
 	u8 val;
@@ -271,7 +271,7 @@
 
 static int pca953x_probe(struct udevice *dev)
 {
-	struct pca953x_info *info = dev_get_platdata(dev);
+	struct pca953x_info *info = dev_get_plat(dev);
 	struct gpio_dev_priv *uc_priv = dev_get_uclass_priv(dev);
 	char name[32], label[8], *str;
 	int addr;
diff --git a/drivers/gpio/pcf8575_gpio.c b/drivers/gpio/pcf8575_gpio.c
index d0ff881..570486f 100644
--- a/drivers/gpio/pcf8575_gpio.c
+++ b/drivers/gpio/pcf8575_gpio.c
@@ -85,7 +85,7 @@
 
 static int pcf8575_direction_input(struct udevice *dev, unsigned offset)
 {
-	struct pcf8575_chip *plat = dev_get_platdata(dev);
+	struct pcf8575_chip *plat = dev_get_plat(dev);
 	int status;
 
 	plat->out |= BIT(offset);
@@ -97,7 +97,7 @@
 static int pcf8575_direction_output(struct udevice *dev,
 				    unsigned int offset, int value)
 {
-	struct pcf8575_chip *plat = dev_get_platdata(dev);
+	struct pcf8575_chip *plat = dev_get_plat(dev);
 	int ret;
 
 	if (value)
@@ -127,7 +127,7 @@
 
 static int pcf8575_ofdata_platdata(struct udevice *dev)
 {
-	struct pcf8575_chip *plat = dev_get_platdata(dev);
+	struct pcf8575_chip *plat = dev_get_plat(dev);
 	struct gpio_dev_priv *uc_priv = dev_get_uclass_priv(dev);
 
 	int n_latch;
diff --git a/drivers/gpio/sifive-gpio.c b/drivers/gpio/sifive-gpio.c
index 4be8d4f..79d3ed4 100644
--- a/drivers/gpio/sifive-gpio.c
+++ b/drivers/gpio/sifive-gpio.c
@@ -15,7 +15,7 @@
 
 static int sifive_gpio_probe(struct udevice *dev)
 {
-	struct sifive_gpio_platdata *plat = dev_get_platdata(dev);
+	struct sifive_gpio_platdata *plat = dev_get_plat(dev);
 	struct gpio_dev_priv *uc_priv = dev_get_uclass_priv(dev);
 	char name[18], *str;
 
@@ -49,7 +49,7 @@
 
 static int sifive_gpio_direction_input(struct udevice *dev, u32 offset)
 {
-	struct sifive_gpio_platdata *plat = dev_get_platdata(dev);
+	struct sifive_gpio_platdata *plat = dev_get_plat(dev);
 	struct gpio_dev_priv *uc_priv = dev_get_uclass_priv(dev);
 
 	if (offset > uc_priv->gpio_count)
@@ -65,7 +65,7 @@
 static int sifive_gpio_direction_output(struct udevice *dev, u32 offset,
 					int value)
 {
-	struct sifive_gpio_platdata *plat = dev_get_platdata(dev);
+	struct sifive_gpio_platdata *plat = dev_get_plat(dev);
 	struct gpio_dev_priv *uc_priv = dev_get_uclass_priv(dev);
 
 	if (offset > uc_priv->gpio_count)
@@ -83,7 +83,7 @@
 
 static int sifive_gpio_get_value(struct udevice *dev, u32 offset)
 {
-	struct sifive_gpio_platdata *plat = dev_get_platdata(dev);
+	struct sifive_gpio_platdata *plat = dev_get_plat(dev);
 	struct gpio_dev_priv *uc_priv = dev_get_uclass_priv(dev);
 	int val;
 	int dir;
@@ -104,7 +104,7 @@
 
 static int sifive_gpio_set_value(struct udevice *dev, u32 offset, int value)
 {
-	struct sifive_gpio_platdata *plat = dev_get_platdata(dev);
+	struct sifive_gpio_platdata *plat = dev_get_plat(dev);
 	struct gpio_dev_priv *uc_priv = dev_get_uclass_priv(dev);
 
 	if (offset > uc_priv->gpio_count)
@@ -117,7 +117,7 @@
 
 static int sifive_gpio_get_function(struct udevice *dev, unsigned int offset)
 {
-	struct sifive_gpio_platdata *plat = dev_get_platdata(dev);
+	struct sifive_gpio_platdata *plat = dev_get_plat(dev);
 	u32	outdir, indir, val;
 	struct gpio_dev_priv *uc_priv = dev_get_uclass_priv(dev);
 
@@ -156,7 +156,7 @@
 
 static int sifive_gpio_ofdata_to_platdata(struct udevice *dev)
 {
-	struct sifive_gpio_platdata *plat = dev_get_platdata(dev);
+	struct sifive_gpio_platdata *plat = dev_get_plat(dev);
 	fdt_addr_t addr;
 
 	addr = dev_read_addr(dev);
diff --git a/drivers/gpio/sunxi_gpio.c b/drivers/gpio/sunxi_gpio.c
index 62d584a..567bd64 100644
--- a/drivers/gpio/sunxi_gpio.c
+++ b/drivers/gpio/sunxi_gpio.c
@@ -158,7 +158,7 @@
 
 static int sunxi_gpio_direction_input(struct udevice *dev, unsigned offset)
 {
-	struct sunxi_gpio_platdata *plat = dev_get_platdata(dev);
+	struct sunxi_gpio_platdata *plat = dev_get_plat(dev);
 
 	sunxi_gpio_set_cfgbank(plat->regs, offset, SUNXI_GPIO_INPUT);
 
@@ -168,7 +168,7 @@
 static int sunxi_gpio_direction_output(struct udevice *dev, unsigned offset,
 				       int value)
 {
-	struct sunxi_gpio_platdata *plat = dev_get_platdata(dev);
+	struct sunxi_gpio_platdata *plat = dev_get_plat(dev);
 	u32 num = GPIO_NUM(offset);
 
 	sunxi_gpio_set_cfgbank(plat->regs, offset, SUNXI_GPIO_OUTPUT);
@@ -179,7 +179,7 @@
 
 static int sunxi_gpio_get_value(struct udevice *dev, unsigned offset)
 {
-	struct sunxi_gpio_platdata *plat = dev_get_platdata(dev);
+	struct sunxi_gpio_platdata *plat = dev_get_plat(dev);
 	u32 num = GPIO_NUM(offset);
 	unsigned dat;
 
@@ -192,7 +192,7 @@
 static int sunxi_gpio_set_value(struct udevice *dev, unsigned offset,
 				int value)
 {
-	struct sunxi_gpio_platdata *plat = dev_get_platdata(dev);
+	struct sunxi_gpio_platdata *plat = dev_get_plat(dev);
 	u32 num = GPIO_NUM(offset);
 
 	clrsetbits_le32(&plat->regs->dat, 1 << num, value ? (1 << num) : 0);
@@ -201,7 +201,7 @@
 
 static int sunxi_gpio_get_function(struct udevice *dev, unsigned offset)
 {
-	struct sunxi_gpio_platdata *plat = dev_get_platdata(dev);
+	struct sunxi_gpio_platdata *plat = dev_get_plat(dev);
 	int func;
 
 	func = sunxi_gpio_get_cfgbank(plat->regs, offset);
@@ -260,7 +260,7 @@
 
 static int gpio_sunxi_probe(struct udevice *dev)
 {
-	struct sunxi_gpio_platdata *plat = dev_get_platdata(dev);
+	struct sunxi_gpio_platdata *plat = dev_get_plat(dev);
 	struct gpio_dev_priv *uc_priv = dev_get_uclass_priv(dev);
 
 	/* Tell the uclass how many GPIOs we have */
diff --git a/drivers/gpio/vybrid_gpio.c b/drivers/gpio/vybrid_gpio.c
index f55553c..bb04b82 100644
--- a/drivers/gpio/vybrid_gpio.c
+++ b/drivers/gpio/vybrid_gpio.c
@@ -93,7 +93,7 @@
 static int vybrid_gpio_probe(struct udevice *dev)
 {
 	struct vybrid_gpios *gpios = dev_get_priv(dev);
-	struct vybrid_gpio_platdata *plat = dev_get_platdata(dev);
+	struct vybrid_gpio_platdata *plat = dev_get_plat(dev);
 	struct gpio_dev_priv *uc_priv = dev_get_uclass_priv(dev);
 
 	uc_priv->bank_name = plat->port_name;
@@ -106,7 +106,7 @@
 
 static int vybrid_gpio_odata_to_platdata(struct udevice *dev)
 {
-	struct vybrid_gpio_platdata *plat = dev_get_platdata(dev);
+	struct vybrid_gpio_platdata *plat = dev_get_plat(dev);
 	fdt_addr_t base_addr;
 
 	base_addr = dev_read_addr(dev);
diff --git a/drivers/gpio/xilinx_gpio.c b/drivers/gpio/xilinx_gpio.c
index 6de08e1..847f399 100644
--- a/drivers/gpio/xilinx_gpio.c
+++ b/drivers/gpio/xilinx_gpio.c
@@ -36,7 +36,7 @@
 static int xilinx_gpio_get_bank_pin(unsigned offset, u32 *bank_num,
 				    u32 *bank_pin_num, struct udevice *dev)
 {
-	struct xilinx_gpio_platdata *plat = dev_get_platdata(dev);
+	struct xilinx_gpio_platdata *plat = dev_get_plat(dev);
 	u32 bank, max_pins;
 	/* the first gpio is 0 not 1 */
 	u32 pin_num = offset;
@@ -59,7 +59,7 @@
 static int xilinx_gpio_set_value(struct udevice *dev, unsigned offset,
 				 int value)
 {
-	struct xilinx_gpio_platdata *plat = dev_get_platdata(dev);
+	struct xilinx_gpio_platdata *plat = dev_get_plat(dev);
 	struct xilinx_gpio_privdata *priv = dev_get_priv(dev);
 	int val, ret;
 	u32 bank, pin;
@@ -87,7 +87,7 @@
 
 static int xilinx_gpio_get_value(struct udevice *dev, unsigned offset)
 {
-	struct xilinx_gpio_platdata *plat = dev_get_platdata(dev);
+	struct xilinx_gpio_platdata *plat = dev_get_plat(dev);
 	struct xilinx_gpio_privdata *priv = dev_get_priv(dev);
 	int val, ret;
 	u32 bank, pin;
@@ -114,7 +114,7 @@
 
 static int xilinx_gpio_get_function(struct udevice *dev, unsigned offset)
 {
-	struct xilinx_gpio_platdata *plat = dev_get_platdata(dev);
+	struct xilinx_gpio_platdata *plat = dev_get_plat(dev);
 	int val, ret;
 	u32 bank, pin;
 
@@ -143,7 +143,7 @@
 static int xilinx_gpio_direction_output(struct udevice *dev, unsigned offset,
 					int value)
 {
-	struct xilinx_gpio_platdata *plat = dev_get_platdata(dev);
+	struct xilinx_gpio_platdata *plat = dev_get_plat(dev);
 	int val, ret;
 	u32 bank, pin;
 
@@ -168,7 +168,7 @@
 
 static int xilinx_gpio_direction_input(struct udevice *dev, unsigned offset)
 {
-	struct xilinx_gpio_platdata *plat = dev_get_platdata(dev);
+	struct xilinx_gpio_platdata *plat = dev_get_plat(dev);
 	int val, ret;
 	u32 bank, pin;
 
@@ -194,7 +194,7 @@
 static int xilinx_gpio_xlate(struct udevice *dev, struct gpio_desc *desc,
 			     struct ofnode_phandle_args *args)
 {
-	struct xilinx_gpio_platdata *plat = dev_get_platdata(dev);
+	struct xilinx_gpio_platdata *plat = dev_get_plat(dev);
 
 	desc->offset = args->args[0];
 
@@ -239,7 +239,7 @@
 
 static int xilinx_gpio_probe(struct udevice *dev)
 {
-	struct xilinx_gpio_platdata *plat = dev_get_platdata(dev);
+	struct xilinx_gpio_platdata *plat = dev_get_plat(dev);
 	struct xilinx_gpio_privdata *priv = dev_get_priv(dev);
 	struct gpio_dev_priv *uc_priv = dev_get_uclass_priv(dev);
 	const void *label_ptr;
@@ -265,7 +265,7 @@
 
 static int xilinx_gpio_ofdata_to_platdata(struct udevice *dev)
 {
-	struct xilinx_gpio_platdata *plat = dev_get_platdata(dev);
+	struct xilinx_gpio_platdata *plat = dev_get_plat(dev);
 	int is_dual;
 
 	plat->regs = (struct gpio_regs *)dev_read_addr(dev);
diff --git a/drivers/gpio/zynq_gpio.c b/drivers/gpio/zynq_gpio.c
index cfe3567..a273aff 100644
--- a/drivers/gpio/zynq_gpio.c
+++ b/drivers/gpio/zynq_gpio.c
@@ -193,7 +193,7 @@
 					  unsigned int *bank_pin_num,
 					  struct udevice *dev)
 {
-	struct zynq_gpio_platdata *plat = dev_get_platdata(dev);
+	struct zynq_gpio_platdata *plat = dev_get_plat(dev);
 	u32 bank;
 
 	for (bank = 0; bank < plat->p_data->max_bank; bank++) {
@@ -215,7 +215,7 @@
 
 static int gpio_is_valid(unsigned gpio, struct udevice *dev)
 {
-	struct zynq_gpio_platdata *plat = dev_get_platdata(dev);
+	struct zynq_gpio_platdata *plat = dev_get_plat(dev);
 
 	return gpio < plat->p_data->ngpio;
 }
@@ -233,7 +233,7 @@
 {
 	u32 data;
 	unsigned int bank_num, bank_pin_num;
-	struct zynq_gpio_platdata *plat = dev_get_platdata(dev);
+	struct zynq_gpio_platdata *plat = dev_get_plat(dev);
 
 	if (check_gpio(gpio, dev) < 0)
 		return -1;
@@ -249,7 +249,7 @@
 static int zynq_gpio_set_value(struct udevice *dev, unsigned gpio, int value)
 {
 	unsigned int reg_offset, bank_num, bank_pin_num;
-	struct zynq_gpio_platdata *plat = dev_get_platdata(dev);
+	struct zynq_gpio_platdata *plat = dev_get_plat(dev);
 
 	if (check_gpio(gpio, dev) < 0)
 		return -1;
@@ -281,7 +281,7 @@
 {
 	u32 reg;
 	unsigned int bank_num, bank_pin_num;
-	struct zynq_gpio_platdata *plat = dev_get_platdata(dev);
+	struct zynq_gpio_platdata *plat = dev_get_plat(dev);
 
 	if (check_gpio(gpio, dev) < 0)
 		return -1;
@@ -305,7 +305,7 @@
 {
 	u32 reg;
 	unsigned int bank_num, bank_pin_num;
-	struct zynq_gpio_platdata *plat = dev_get_platdata(dev);
+	struct zynq_gpio_platdata *plat = dev_get_plat(dev);
 
 	if (check_gpio(gpio, dev) < 0)
 		return -1;
@@ -331,7 +331,7 @@
 {
 	u32 reg;
 	unsigned int bank_num, bank_pin_num;
-	struct zynq_gpio_platdata *plat = dev_get_platdata(dev);
+	struct zynq_gpio_platdata *plat = dev_get_plat(dev);
 
 	if (check_gpio(offset, dev) < 0)
 		return -1;
@@ -369,7 +369,7 @@
 
 static int zynq_gpio_probe(struct udevice *dev)
 {
-	struct zynq_gpio_platdata *plat = dev_get_platdata(dev);
+	struct zynq_gpio_platdata *plat = dev_get_plat(dev);
 	struct gpio_dev_priv *uc_priv = dev_get_uclass_priv(dev);
 	const void *label_ptr;
 
@@ -390,7 +390,7 @@
 
 static int zynq_gpio_ofdata_to_platdata(struct udevice *dev)
 {
-	struct zynq_gpio_platdata *plat = dev_get_platdata(dev);
+	struct zynq_gpio_platdata *plat = dev_get_plat(dev);
 
 	plat->base = (phys_addr_t)dev_read_addr(dev);
 
diff --git a/drivers/i2c/lpc32xx_i2c.c b/drivers/i2c/lpc32xx_i2c.c
index 6af2e97..e321d4b 100644
--- a/drivers/i2c/lpc32xx_i2c.c
+++ b/drivers/i2c/lpc32xx_i2c.c
@@ -281,7 +281,7 @@
 #else /* CONFIG_DM_I2C */
 static int lpc32xx_i2c_probe(struct udevice *bus)
 {
-	struct lpc32xx_i2c_dev *dev = dev_get_platdata(bus);
+	struct lpc32xx_i2c_dev *dev = dev_get_plat(bus);
 	bus->seq = dev->index;
 
 	__i2c_init(dev->base, dev->speed, 0, dev->index);
@@ -291,14 +291,14 @@
 static int lpc32xx_i2c_probe_chip(struct udevice *bus, u32 chip_addr,
 				  u32 chip_flags)
 {
-	struct lpc32xx_i2c_dev *dev = dev_get_platdata(bus);
+	struct lpc32xx_i2c_dev *dev = dev_get_plat(bus);
 	return __i2c_probe_chip(dev->base, chip_addr);
 }
 
 static int lpc32xx_i2c_xfer(struct udevice *bus, struct i2c_msg *msg,
 		int nmsgs)
 {
-	struct lpc32xx_i2c_dev *dev = dev_get_platdata(bus);
+	struct lpc32xx_i2c_dev *dev = dev_get_plat(bus);
 	struct i2c_msg *dmsg, *omsg, dummy;
 	uint i = 0, address = 0;
 
@@ -330,13 +330,13 @@
 
 static int lpc32xx_i2c_set_bus_speed(struct udevice *bus, unsigned int speed)
 {
-	struct lpc32xx_i2c_dev *dev = dev_get_platdata(bus);
+	struct lpc32xx_i2c_dev *dev = dev_get_plat(bus);
 	return __i2c_set_bus_speed(dev->base, speed, dev->index);
 }
 
 static int lpc32xx_i2c_reset(struct udevice *bus)
 {
-	struct lpc32xx_i2c_dev *dev = dev_get_platdata(bus);
+	struct lpc32xx_i2c_dev *dev = dev_get_plat(bus);
 
 	__i2c_init(dev->base, dev->speed, 0, dev->index);
 	return 0;
diff --git a/drivers/i2c/omap24xx_i2c.c b/drivers/i2c/omap24xx_i2c.c
index ea9e933..9d05a1f 100644
--- a/drivers/i2c/omap24xx_i2c.c
+++ b/drivers/i2c/omap24xx_i2c.c
@@ -1049,7 +1049,7 @@
 static int omap_i2c_probe(struct udevice *bus)
 {
 	struct omap_i2c *priv = dev_get_priv(bus);
-	struct omap_i2c_platdata *plat = dev_get_platdata(bus);
+	struct omap_i2c_platdata *plat = dev_get_plat(bus);
 
 	priv->speed = plat->speed;
 	priv->regs = map_physmem(plat->base, sizeof(void *),
@@ -1065,7 +1065,7 @@
 #if CONFIG_IS_ENABLED(OF_CONTROL) && !CONFIG_IS_ENABLED(OF_PLATDATA)
 static int omap_i2c_ofdata_to_platdata(struct udevice *bus)
 {
-	struct omap_i2c_platdata *plat = dev_get_platdata(bus);
+	struct omap_i2c_platdata *plat = dev_get_plat(bus);
 
 	plat->base = dev_read_addr(bus);
 	plat->speed = dev_read_u32_default(bus, "clock-frequency",
diff --git a/drivers/led/led_cortina.c b/drivers/led/led_cortina.c
index f9e497f..c705eba 100644
--- a/drivers/led/led_cortina.c
+++ b/drivers/led/led_cortina.c
@@ -136,7 +136,7 @@
 
 	/* Top-level LED node */
 	if (!uc_plat->label) {
-		struct cortina_led_platdata *plt = dev_get_platdata(dev);
+		struct cortina_led_platdata *plt = dev_get_plat(dev);
 
 		plt->rate1 =
 			dev_read_u32_default(dev, "Cortina,blink-rate1", 256);
@@ -169,7 +169,7 @@
 
 	/* Top-level LED node */
 	if (!uc_plat->label) {
-		struct cortina_led_platdata *plat = dev_get_platdata(dev);
+		struct cortina_led_platdata *plat = dev_get_plat(dev);
 		u32 reg_value, val;
 		u16 rate1, rate2;
 
diff --git a/drivers/misc/altera_sysid.c b/drivers/misc/altera_sysid.c
index 2bb520f..31684d7 100644
--- a/drivers/misc/altera_sysid.c
+++ b/drivers/misc/altera_sysid.c
@@ -71,7 +71,7 @@
 
 static int altera_sysid_ofdata_to_platdata(struct udevice *dev)
 {
-	struct altera_sysid_platdata *plat = dev_get_platdata(dev);
+	struct altera_sysid_platdata *plat = dev_get_plat(dev);
 
 	plat->regs = map_physmem(dev_read_addr(dev),
 				 sizeof(struct altera_sysid_regs),
diff --git a/drivers/misc/i2c_eeprom_emul.c b/drivers/misc/i2c_eeprom_emul.c
index 65db9c8..92b2f27 100644
--- a/drivers/misc/i2c_eeprom_emul.c
+++ b/drivers/misc/i2c_eeprom_emul.c
@@ -36,14 +36,14 @@
 void sandbox_i2c_eeprom_set_test_mode(struct udevice *dev,
 				      enum sandbox_i2c_eeprom_test_mode mode)
 {
-	struct sandbox_i2c_flash_plat_data *plat = dev_get_platdata(dev);
+	struct sandbox_i2c_flash_plat_data *plat = dev_get_plat(dev);
 
 	plat->test_mode = mode;
 }
 
 void sandbox_i2c_eeprom_set_offset_len(struct udevice *dev, int offset_len)
 {
-	struct sandbox_i2c_flash_plat_data *plat = dev_get_platdata(dev);
+	struct sandbox_i2c_flash_plat_data *plat = dev_get_plat(dev);
 
 	plat->offset_len = offset_len;
 }
@@ -51,7 +51,7 @@
 void sandbox_i2c_eeprom_set_chip_addr_offset_mask(struct udevice *dev,
 						  uint mask)
 {
-	struct sandbox_i2c_flash_plat_data *plat = dev_get_platdata(dev);
+	struct sandbox_i2c_flash_plat_data *plat = dev_get_plat(dev);
 
 	plat->chip_addr_offset_mask = mask;
 }
@@ -74,7 +74,7 @@
 				  int nmsgs)
 {
 	struct sandbox_i2c_flash *priv = dev_get_priv(emul);
-	struct sandbox_i2c_flash_plat_data *plat = dev_get_platdata(emul);
+	struct sandbox_i2c_flash_plat_data *plat = dev_get_plat(emul);
 	uint offset = msg->addr & plat->chip_addr_offset_mask;
 
 	debug("\n%s\n", __func__);
@@ -151,7 +151,7 @@
 
 static int sandbox_i2c_eeprom_ofdata_to_platdata(struct udevice *dev)
 {
-	struct sandbox_i2c_flash_plat_data *plat = dev_get_platdata(dev);
+	struct sandbox_i2c_flash_plat_data *plat = dev_get_plat(dev);
 
 	plat->size = dev_read_u32_default(dev, "sandbox,size", 32);
 	plat->filename = dev_read_string(dev, "sandbox,filename");
@@ -169,7 +169,7 @@
 
 static int sandbox_i2c_eeprom_probe(struct udevice *dev)
 {
-	struct sandbox_i2c_flash_plat_data *plat = dev_get_platdata(dev);
+	struct sandbox_i2c_flash_plat_data *plat = dev_get_plat(dev);
 	struct sandbox_i2c_flash *priv = dev_get_priv(dev);
 
 	priv->data = calloc(1, plat->size);
diff --git a/drivers/misc/imx8/scu.c b/drivers/misc/imx8/scu.c
index 65e34d5..72a3473 100644
--- a/drivers/misc/imx8/scu.c
+++ b/drivers/misc/imx8/scu.c
@@ -158,7 +158,7 @@
 static int imx8_scu_call(struct udevice *dev, int no_resp, void *tx_msg,
 			 int tx_size, void *rx_msg, int rx_size)
 {
-	struct imx8_scu *plat = dev_get_platdata(dev);
+	struct imx8_scu *plat = dev_get_plat(dev);
 	sc_err_t result;
 	int ret;
 
@@ -182,7 +182,7 @@
 
 static int imx8_scu_probe(struct udevice *dev)
 {
-	struct imx8_scu *plat = dev_get_platdata(dev);
+	struct imx8_scu *plat = dev_get_plat(dev);
 	fdt_addr_t addr;
 
 	debug("%s(dev=%p) (plat=%p)\n", __func__, dev, plat);
diff --git a/drivers/misc/microchip_flexcom.c b/drivers/misc/microchip_flexcom.c
index 1d9ca82..a95d9cb 100644
--- a/drivers/misc/microchip_flexcom.c
+++ b/drivers/misc/microchip_flexcom.c
@@ -23,7 +23,7 @@
 
 static int microchip_flexcom_ofdata_to_platdata(struct udevice *dev)
 {
-	struct microchip_flexcom_platdata *plat = dev_get_platdata(dev);
+	struct microchip_flexcom_platdata *plat = dev_get_plat(dev);
 	int ret;
 
 	plat->regs = map_physmem(dev_read_addr(dev),
diff --git a/drivers/misc/p2sb_emul.c b/drivers/misc/p2sb_emul.c
index 642e94f..5c70ca8 100644
--- a/drivers/misc/p2sb_emul.c
+++ b/drivers/misc/p2sb_emul.c
@@ -53,7 +53,7 @@
 					 uint offset, ulong *valuep,
 					 enum pci_size_t size)
 {
-	struct p2sb_emul_platdata *plat = dev_get_platdata(emul);
+	struct p2sb_emul_platdata *plat = dev_get_plat(emul);
 
 	switch (offset) {
 	case PCI_COMMAND:
@@ -106,7 +106,7 @@
 static int sandbox_p2sb_emul_write_config(struct udevice *emul, uint offset,
 					  ulong value, enum pci_size_t size)
 {
-	struct p2sb_emul_platdata *plat = dev_get_platdata(emul);
+	struct p2sb_emul_platdata *plat = dev_get_plat(emul);
 
 	switch (offset) {
 	case PCI_COMMAND:
@@ -134,7 +134,7 @@
 static int sandbox_p2sb_emul_find_bar(struct udevice *emul, unsigned int addr,
 				      int *barnump, unsigned int *offsetp)
 {
-	struct p2sb_emul_platdata *plat = dev_get_platdata(emul);
+	struct p2sb_emul_platdata *plat = dev_get_plat(emul);
 	int barnum;
 
 	for (barnum = 0; barnum < ARRAY_SIZE(barinfo); barnum++) {
diff --git a/drivers/misc/rockchip-efuse.c b/drivers/misc/rockchip-efuse.c
index d3aa5b9..4659d4e 100644
--- a/drivers/misc/rockchip-efuse.c
+++ b/drivers/misc/rockchip-efuse.c
@@ -86,7 +86,7 @@
 static int rockchip_rk3399_efuse_read(struct udevice *dev, int offset,
 				      void *buf, int size)
 {
-	struct rockchip_efuse_platdata *plat = dev_get_platdata(dev);
+	struct rockchip_efuse_platdata *plat = dev_get_plat(dev);
 	struct rockchip_efuse_regs *efuse =
 		(struct rockchip_efuse_regs *)plat->base;
 
@@ -139,7 +139,7 @@
 
 static int rockchip_efuse_ofdata_to_platdata(struct udevice *dev)
 {
-	struct rockchip_efuse_platdata *plat = dev_get_platdata(dev);
+	struct rockchip_efuse_platdata *plat = dev_get_plat(dev);
 
 	plat->base = dev_read_addr_ptr(dev);
 	return 0;
diff --git a/drivers/misc/rockchip-otp.c b/drivers/misc/rockchip-otp.c
index be666bc..b56eb66 100644
--- a/drivers/misc/rockchip-otp.c
+++ b/drivers/misc/rockchip-otp.c
@@ -102,7 +102,7 @@
 static int rockchip_px30_otp_read(struct udevice *dev, int offset,
 				  void *buf, int size)
 {
-	struct rockchip_otp_platdata *otp = dev_get_platdata(dev);
+	struct rockchip_otp_platdata *otp = dev_get_plat(dev);
 	u8 *buffer = buf;
 	int ret = 0;
 
@@ -147,7 +147,7 @@
 
 static int rockchip_otp_ofdata_to_platdata(struct udevice *dev)
 {
-	struct rockchip_otp_platdata *otp = dev_get_platdata(dev);
+	struct rockchip_otp_platdata *otp = dev_get_plat(dev);
 
 	otp->base = dev_read_addr_ptr(dev);
 
diff --git a/drivers/misc/sifive-otp.c b/drivers/misc/sifive-otp.c
index 33c0d68..1f0bd1d 100644
--- a/drivers/misc/sifive-otp.c
+++ b/drivers/misc/sifive-otp.c
@@ -100,7 +100,7 @@
 static int sifive_otp_read(struct udevice *dev, int offset,
 			   void *buf, int size)
 {
-	struct sifive_otp_platdata *plat = dev_get_platdata(dev);
+	struct sifive_otp_platdata *plat = dev_get_plat(dev);
 	struct sifive_otp_regs *regs = (struct sifive_otp_regs *)plat->regs;
 
 	/* Check if offset and size are multiple of BYTES_PER_FUSE */
@@ -162,7 +162,7 @@
 static int sifive_otp_write(struct udevice *dev, int offset,
 			    const void *buf, int size)
 {
-	struct sifive_otp_platdata *plat = dev_get_platdata(dev);
+	struct sifive_otp_platdata *plat = dev_get_plat(dev);
 	struct sifive_otp_regs *regs = (struct sifive_otp_regs *)plat->regs;
 
 	/* Check if offset and size are multiple of BYTES_PER_FUSE */
@@ -241,7 +241,7 @@
 
 static int sifive_otp_ofdata_to_platdata(struct udevice *dev)
 {
-	struct sifive_otp_platdata *plat = dev_get_platdata(dev);
+	struct sifive_otp_platdata *plat = dev_get_plat(dev);
 	int ret;
 
 	plat->regs = dev_read_addr_ptr(dev);
diff --git a/drivers/misc/swap_case.c b/drivers/misc/swap_case.c
index 5de7841..9dd3b06 100644
--- a/drivers/misc/swap_case.c
+++ b/drivers/misc/swap_case.c
@@ -100,7 +100,7 @@
 					 uint offset, ulong *valuep,
 					 enum pci_size_t size)
 {
-	struct swap_case_platdata *plat = dev_get_platdata(emul);
+	struct swap_case_platdata *plat = dev_get_plat(emul);
 
 	/*
 	 * The content of the EA capability structure is handled elsewhere to
@@ -200,7 +200,7 @@
 static int sandbox_swap_case_write_config(struct udevice *emul, uint offset,
 					  ulong value, enum pci_size_t size)
 {
-	struct swap_case_platdata *plat = dev_get_platdata(emul);
+	struct swap_case_platdata *plat = dev_get_plat(emul);
 
 	switch (offset) {
 	case PCI_COMMAND:
@@ -228,7 +228,7 @@
 static int sandbox_swap_case_find_bar(struct udevice *emul, unsigned int addr,
 				      int *barnump, unsigned int *offsetp)
 {
-	struct swap_case_platdata *plat = dev_get_platdata(emul);
+	struct swap_case_platdata *plat = dev_get_plat(emul);
 	int barnum;
 
 	for (barnum = 0; barnum < ARRAY_SIZE(barinfo); barnum++) {
diff --git a/drivers/mmc/am654_sdhci.c b/drivers/mmc/am654_sdhci.c
index 2015e31..1fca3e6 100644
--- a/drivers/mmc/am654_sdhci.c
+++ b/drivers/mmc/am654_sdhci.c
@@ -129,7 +129,7 @@
 static int am654_sdhci_set_ios_post(struct sdhci_host *host)
 {
 	struct udevice *dev = host->mmc->dev;
-	struct am654_sdhci_plat *plat = dev_get_platdata(dev);
+	struct am654_sdhci_plat *plat = dev_get_plat(dev);
 	unsigned int speed = host->mmc->clock;
 	int sel50, sel100, freqsel;
 	u32 otap_del_sel;
@@ -269,7 +269,7 @@
 static int am654_sdhci_deferred_probe(struct sdhci_host *host)
 {
 	struct udevice *dev = host->mmc->dev;
-	struct am654_sdhci_plat *plat = dev_get_platdata(dev);
+	struct am654_sdhci_plat *plat = dev_get_plat(dev);
 	unsigned long start;
 	int val;
 
@@ -311,7 +311,7 @@
 static int j721e_4bit_sdhci_set_ios_post(struct sdhci_host *host)
 {
 	struct udevice *dev = host->mmc->dev;
-	struct am654_sdhci_plat *plat = dev_get_platdata(dev);
+	struct am654_sdhci_plat *plat = dev_get_plat(dev);
 	u32 otap_del_sel, mask, val;
 
 	otap_del_sel = plat->otap_del_sel[host->mmc->selected_mode];
@@ -335,7 +335,7 @@
 static int sdhci_am654_get_otap_delay(struct udevice *dev,
 				      struct mmc_config *cfg)
 {
-	struct am654_sdhci_plat *plat = dev_get_platdata(dev);
+	struct am654_sdhci_plat *plat = dev_get_plat(dev);
 	int ret;
 	int i;
 
@@ -367,7 +367,7 @@
 {
 	struct am654_driver_data *drv_data =
 			(struct am654_driver_data *)dev_get_driver_data(dev);
-	struct am654_sdhci_plat *plat = dev_get_platdata(dev);
+	struct am654_sdhci_plat *plat = dev_get_plat(dev);
 	struct mmc_uclass_priv *upriv = dev_get_uclass_priv(dev);
 	struct sdhci_host *host = dev_get_priv(dev);
 	struct mmc_config *cfg = &plat->cfg;
@@ -410,7 +410,7 @@
 
 static int am654_sdhci_ofdata_to_platdata(struct udevice *dev)
 {
-	struct am654_sdhci_plat *plat = dev_get_platdata(dev);
+	struct am654_sdhci_plat *plat = dev_get_plat(dev);
 	struct sdhci_host *host = dev_get_priv(dev);
 	struct mmc_config *cfg = &plat->cfg;
 	u32 drv_strength;
@@ -463,7 +463,7 @@
 {
 	struct am654_driver_data *drv_data =
 			(struct am654_driver_data *)dev_get_driver_data(dev);
-	struct am654_sdhci_plat *plat = dev_get_platdata(dev);
+	struct am654_sdhci_plat *plat = dev_get_plat(dev);
 
 	plat->flags = drv_data->flags;
 
diff --git a/drivers/mmc/arm_pl180_mmci.c b/drivers/mmc/arm_pl180_mmci.c
index 6d983d0..7dc23ca 100644
--- a/drivers/mmc/arm_pl180_mmci.c
+++ b/drivers/mmc/arm_pl180_mmci.c
@@ -418,7 +418,7 @@
 
 static int arm_pl180_mmc_probe(struct udevice *dev)
 {
-	struct arm_pl180_mmc_plat *pdata = dev_get_platdata(dev);
+	struct arm_pl180_mmc_plat *pdata = dev_get_plat(dev);
 	struct mmc_uclass_priv *upriv = dev_get_uclass_priv(dev);
 	struct mmc *mmc = &pdata->mmc;
 	struct pl180_mmc_host *host = dev->priv;
@@ -486,7 +486,7 @@
 
 int arm_pl180_mmc_bind(struct udevice *dev)
 {
-	struct arm_pl180_mmc_plat *plat = dev_get_platdata(dev);
+	struct arm_pl180_mmc_plat *plat = dev_get_plat(dev);
 
 	return mmc_bind(dev, &plat->mmc, &plat->cfg);
 }
diff --git a/drivers/mmc/aspeed_sdhci.c b/drivers/mmc/aspeed_sdhci.c
index 1e340f8..4537315 100644
--- a/drivers/mmc/aspeed_sdhci.c
+++ b/drivers/mmc/aspeed_sdhci.c
@@ -19,7 +19,7 @@
 static int aspeed_sdhci_probe(struct udevice *dev)
 {
 	struct mmc_uclass_priv *upriv = dev_get_uclass_priv(dev);
-	struct aspeed_sdhci_plat *plat = dev_get_platdata(dev);
+	struct aspeed_sdhci_plat *plat = dev_get_plat(dev);
 	struct sdhci_host *host = dev_get_priv(dev);
 	u32 max_clk;
 	struct clk clk;
@@ -67,7 +67,7 @@
 
 static int aspeed_sdhci_bind(struct udevice *dev)
 {
-	struct aspeed_sdhci_plat *plat = dev_get_platdata(dev);
+	struct aspeed_sdhci_plat *plat = dev_get_plat(dev);
 
 	return sdhci_bind(dev, &plat->mmc, &plat->cfg);
 }
diff --git a/drivers/mmc/atmel_sdhci.c b/drivers/mmc/atmel_sdhci.c
index ee5d0dc..2de8eb8 100644
--- a/drivers/mmc/atmel_sdhci.c
+++ b/drivers/mmc/atmel_sdhci.c
@@ -54,7 +54,7 @@
 static int atmel_sdhci_probe(struct udevice *dev)
 {
 	struct mmc_uclass_priv *upriv = dev_get_uclass_priv(dev);
-	struct atmel_sdhci_plat *plat = dev_get_platdata(dev);
+	struct atmel_sdhci_plat *plat = dev_get_plat(dev);
 	struct sdhci_host *host = dev_get_priv(dev);
 	u32 max_clk;
 	struct clk clk;
@@ -111,7 +111,7 @@
 
 static int atmel_sdhci_bind(struct udevice *dev)
 {
-	struct atmel_sdhci_plat *plat = dev_get_platdata(dev);
+	struct atmel_sdhci_plat *plat = dev_get_plat(dev);
 
 	return sdhci_bind(dev, &plat->mmc, &plat->cfg);
 }
diff --git a/drivers/mmc/bcm2835_sdhci.c b/drivers/mmc/bcm2835_sdhci.c
index 958129c..5e48394 100644
--- a/drivers/mmc/bcm2835_sdhci.c
+++ b/drivers/mmc/bcm2835_sdhci.c
@@ -166,7 +166,7 @@
 
 static int bcm2835_sdhci_bind(struct udevice *dev)
 {
-	struct bcm2835_sdhci_plat *plat = dev_get_platdata(dev);
+	struct bcm2835_sdhci_plat *plat = dev_get_plat(dev);
 
 	return sdhci_bind(dev, &plat->mmc, &plat->cfg);
 }
@@ -174,7 +174,7 @@
 static int bcm2835_sdhci_probe(struct udevice *dev)
 {
 	struct mmc_uclass_priv *upriv = dev_get_uclass_priv(dev);
-	struct bcm2835_sdhci_plat *plat = dev_get_platdata(dev);
+	struct bcm2835_sdhci_plat *plat = dev_get_plat(dev);
 	struct bcm2835_sdhci_host *priv = dev_get_priv(dev);
 	struct sdhci_host *host = &priv->host;
 	fdt_addr_t base;
diff --git a/drivers/mmc/bcm2835_sdhost.c b/drivers/mmc/bcm2835_sdhost.c
index 8531f54..894dbdd 100644
--- a/drivers/mmc/bcm2835_sdhost.c
+++ b/drivers/mmc/bcm2835_sdhost.c
@@ -755,7 +755,7 @@
 
 static int bcm2835_probe(struct udevice *dev)
 {
-	struct bcm2835_plat *plat = dev_get_platdata(dev);
+	struct bcm2835_plat *plat = dev_get_plat(dev);
 	struct bcm2835_host *host = dev_get_priv(dev);
 	struct mmc *mmc = mmc_get_mmc_dev(dev);
 	struct mmc_uclass_priv *upriv = dev_get_uclass_priv(dev);
@@ -795,7 +795,7 @@
 
 static int bcm2835_bind(struct udevice *dev)
 {
-	struct bcm2835_plat *plat = dev_get_platdata(dev);
+	struct bcm2835_plat *plat = dev_get_plat(dev);
 
 	return mmc_bind(dev, &plat->mmc, &plat->cfg);
 }
diff --git a/drivers/mmc/bcmstb_sdhci.c b/drivers/mmc/bcmstb_sdhci.c
index e8041eb..dc96818 100644
--- a/drivers/mmc/bcmstb_sdhci.c
+++ b/drivers/mmc/bcmstb_sdhci.c
@@ -49,7 +49,7 @@
 
 static int sdhci_bcmstb_bind(struct udevice *dev)
 {
-	struct sdhci_bcmstb_plat *plat = dev_get_platdata(dev);
+	struct sdhci_bcmstb_plat *plat = dev_get_plat(dev);
 
 	return sdhci_bind(dev, &plat->mmc, &plat->cfg);
 }
@@ -57,7 +57,7 @@
 static int sdhci_bcmstb_probe(struct udevice *dev)
 {
 	struct mmc_uclass_priv *upriv = dev_get_uclass_priv(dev);
-	struct sdhci_bcmstb_plat *plat = dev_get_platdata(dev);
+	struct sdhci_bcmstb_plat *plat = dev_get_plat(dev);
 	struct sdhci_host *host = dev_get_priv(dev);
 	fdt_addr_t base;
 	int ret;
diff --git a/drivers/mmc/ca_dw_mmc.c b/drivers/mmc/ca_dw_mmc.c
index f295c54..5b08d09 100644
--- a/drivers/mmc/ca_dw_mmc.c
+++ b/drivers/mmc/ca_dw_mmc.c
@@ -124,7 +124,7 @@
 
 static int ca_dwmmc_probe(struct udevice *dev)
 {
-	struct ca_mmc_plat *plat = dev_get_platdata(dev);
+	struct ca_mmc_plat *plat = dev_get_plat(dev);
 	struct mmc_uclass_priv *upriv = dev_get_uclass_priv(dev);
 	struct ca_dwmmc_priv_data *priv = dev_get_priv(dev);
 	struct dwmci_host *host = &priv->host;
@@ -148,7 +148,7 @@
 
 static int ca_dwmmc_bind(struct udevice *dev)
 {
-	struct ca_mmc_plat *plat = dev_get_platdata(dev);
+	struct ca_mmc_plat *plat = dev_get_plat(dev);
 
 	return dwmci_bind(dev, &plat->mmc, &plat->cfg);
 }
diff --git a/drivers/mmc/davinci_mmc.c b/drivers/mmc/davinci_mmc.c
index d3562c3..975a6be 100644
--- a/drivers/mmc/davinci_mmc.c
+++ b/drivers/mmc/davinci_mmc.c
@@ -478,7 +478,7 @@
 static int davinci_mmc_probe(struct udevice *dev)
 {
 	struct mmc_uclass_priv *upriv = dev_get_uclass_priv(dev);
-	struct davinci_mmc_plat *plat = dev_get_platdata(dev);
+	struct davinci_mmc_plat *plat = dev_get_plat(dev);
 	struct davinci_mmc_priv *priv = dev_get_priv(dev);
 
 	priv->reg_base = plat->reg_base;
@@ -495,7 +495,7 @@
 
 static int davinci_mmc_bind(struct udevice *dev)
 {
-	struct davinci_mmc_plat *plat = dev_get_platdata(dev);
+	struct davinci_mmc_plat *plat = dev_get_plat(dev);
 
 	return mmc_bind(dev, &plat->mmc, &plat->cfg);
 }
@@ -503,7 +503,7 @@
 #if CONFIG_IS_ENABLED(OF_CONTROL)
 static int davinci_mmc_ofdata_to_platdata(struct udevice *dev)
 {
-	struct davinci_mmc_plat *plat = dev_get_platdata(dev);
+	struct davinci_mmc_plat *plat = dev_get_plat(dev);
 	struct mmc_config *cfg = &plat->cfg;
 
 	plat->reg_base = (struct davinci_mmc_regs *)dev_read_addr(dev);
diff --git a/drivers/mmc/exynos_dw_mmc.c b/drivers/mmc/exynos_dw_mmc.c
index 5cc28c5..3aa9fb3 100644
--- a/drivers/mmc/exynos_dw_mmc.c
+++ b/drivers/mmc/exynos_dw_mmc.c
@@ -263,7 +263,7 @@
 #ifdef CONFIG_DM_MMC
 static int exynos_dwmmc_probe(struct udevice *dev)
 {
-	struct exynos_mmc_plat *plat = dev_get_platdata(dev);
+	struct exynos_mmc_plat *plat = dev_get_plat(dev);
 	struct mmc_uclass_priv *upriv = dev_get_uclass_priv(dev);
 	struct dwmci_exynos_priv_data *priv = dev_get_priv(dev);
 	struct dwmci_host *host = &priv->host;
@@ -288,7 +288,7 @@
 
 static int exynos_dwmmc_bind(struct udevice *dev)
 {
-	struct exynos_mmc_plat *plat = dev_get_platdata(dev);
+	struct exynos_mmc_plat *plat = dev_get_plat(dev);
 
 	return dwmci_bind(dev, &plat->mmc, &plat->cfg);
 }
diff --git a/drivers/mmc/fsl_esdhc.c b/drivers/mmc/fsl_esdhc.c
index ad0dada..b5f3fd1 100644
--- a/drivers/mmc/fsl_esdhc.c
+++ b/drivers/mmc/fsl_esdhc.c
@@ -955,7 +955,7 @@
 static int fsl_esdhc_probe(struct udevice *dev)
 {
 	struct mmc_uclass_priv *upriv = dev_get_uclass_priv(dev);
-	struct fsl_esdhc_plat *plat = dev_get_platdata(dev);
+	struct fsl_esdhc_plat *plat = dev_get_plat(dev);
 	struct fsl_esdhc_priv *priv = dev_get_priv(dev);
 	u32 caps, hostver;
 	fdt_addr_t addr;
@@ -1022,7 +1022,7 @@
 
 static int fsl_esdhc_get_cd(struct udevice *dev)
 {
-	struct fsl_esdhc_plat *plat = dev_get_platdata(dev);
+	struct fsl_esdhc_plat *plat = dev_get_plat(dev);
 	struct fsl_esdhc_priv *priv = dev_get_priv(dev);
 
 	if (plat->cfg.host_caps & MMC_CAP_NONREMOVABLE)
@@ -1034,7 +1034,7 @@
 static int fsl_esdhc_send_cmd(struct udevice *dev, struct mmc_cmd *cmd,
 			      struct mmc_data *data)
 {
-	struct fsl_esdhc_plat *plat = dev_get_platdata(dev);
+	struct fsl_esdhc_plat *plat = dev_get_plat(dev);
 	struct fsl_esdhc_priv *priv = dev_get_priv(dev);
 
 	return esdhc_send_cmd_common(priv, &plat->mmc, cmd, data);
@@ -1042,7 +1042,7 @@
 
 static int fsl_esdhc_set_ios(struct udevice *dev)
 {
-	struct fsl_esdhc_plat *plat = dev_get_platdata(dev);
+	struct fsl_esdhc_plat *plat = dev_get_plat(dev);
 	struct fsl_esdhc_priv *priv = dev_get_priv(dev);
 
 	return esdhc_set_ios_common(priv, &plat->mmc);
@@ -1050,7 +1050,7 @@
 
 static int fsl_esdhc_reinit(struct udevice *dev)
 {
-	struct fsl_esdhc_plat *plat = dev_get_platdata(dev);
+	struct fsl_esdhc_plat *plat = dev_get_plat(dev);
 	struct fsl_esdhc_priv *priv = dev_get_priv(dev);
 
 	return esdhc_init_common(priv, &plat->mmc);
@@ -1059,7 +1059,7 @@
 #ifdef MMC_SUPPORTS_TUNING
 static int fsl_esdhc_execute_tuning(struct udevice *dev, uint32_t opcode)
 {
-	struct fsl_esdhc_plat *plat = dev_get_platdata(dev);
+	struct fsl_esdhc_plat *plat = dev_get_plat(dev);
 	struct fsl_esdhc_priv *priv = dev_get_priv(dev);
 	struct fsl_esdhc *regs = priv->esdhc_regs;
 	u32 val, irqstaten;
@@ -1124,7 +1124,7 @@
 
 static int fsl_esdhc_bind(struct udevice *dev)
 {
-	struct fsl_esdhc_plat *plat = dev_get_platdata(dev);
+	struct fsl_esdhc_plat *plat = dev_get_plat(dev);
 
 	return mmc_bind(dev, &plat->mmc, &plat->cfg);
 }
diff --git a/drivers/mmc/fsl_esdhc_imx.c b/drivers/mmc/fsl_esdhc_imx.c
index 54a42e0..2b89b96 100644
--- a/drivers/mmc/fsl_esdhc_imx.c
+++ b/drivers/mmc/fsl_esdhc_imx.c
@@ -851,7 +851,7 @@
 
 static int fsl_esdhc_execute_tuning(struct udevice *dev, uint32_t opcode)
 {
-	struct fsl_esdhc_plat *plat = dev_get_platdata(dev);
+	struct fsl_esdhc_plat *plat = dev_get_plat(dev);
 	struct fsl_esdhc_priv *priv = dev_get_priv(dev);
 	struct fsl_esdhc *regs = priv->esdhc_regs;
 	struct mmc *mmc = &plat->mmc;
@@ -1474,7 +1474,7 @@
 static int fsl_esdhc_probe(struct udevice *dev)
 {
 	struct mmc_uclass_priv *upriv = dev_get_uclass_priv(dev);
-	struct fsl_esdhc_plat *plat = dev_get_platdata(dev);
+	struct fsl_esdhc_plat *plat = dev_get_plat(dev);
 	struct fsl_esdhc_priv *priv = dev_get_priv(dev);
 	struct esdhc_soc_data *data =
 		(struct esdhc_soc_data *)dev_get_driver_data(dev);
@@ -1617,7 +1617,7 @@
 static int fsl_esdhc_send_cmd(struct udevice *dev, struct mmc_cmd *cmd,
 			      struct mmc_data *data)
 {
-	struct fsl_esdhc_plat *plat = dev_get_platdata(dev);
+	struct fsl_esdhc_plat *plat = dev_get_plat(dev);
 	struct fsl_esdhc_priv *priv = dev_get_priv(dev);
 
 	return esdhc_send_cmd_common(priv, &plat->mmc, cmd, data);
@@ -1625,7 +1625,7 @@
 
 static int fsl_esdhc_set_ios(struct udevice *dev)
 {
-	struct fsl_esdhc_plat *plat = dev_get_platdata(dev);
+	struct fsl_esdhc_plat *plat = dev_get_plat(dev);
 	struct fsl_esdhc_priv *priv = dev_get_priv(dev);
 
 	return esdhc_set_ios_common(priv, &plat->mmc);
@@ -1691,7 +1691,7 @@
 #if CONFIG_IS_ENABLED(BLK)
 static int fsl_esdhc_bind(struct udevice *dev)
 {
-	struct fsl_esdhc_plat *plat = dev_get_platdata(dev);
+	struct fsl_esdhc_plat *plat = dev_get_plat(dev);
 
 	return mmc_bind(dev, &plat->mmc, &plat->cfg);
 }
diff --git a/drivers/mmc/ftsdc010_mci.c b/drivers/mmc/ftsdc010_mci.c
index 196c527..1c31874 100644
--- a/drivers/mmc/ftsdc010_mci.c
+++ b/drivers/mmc/ftsdc010_mci.c
@@ -424,7 +424,7 @@
 
 static int ftsdc010_mmc_probe(struct udevice *dev)
 {
-	struct ftsdc010_plat *plat = dev_get_platdata(dev);
+	struct ftsdc010_plat *plat = dev_get_plat(dev);
 	struct mmc_uclass_priv *upriv = dev_get_uclass_priv(dev);
 	struct ftsdc_priv *priv = dev_get_priv(dev);
 	struct ftsdc010_chip *chip = &priv->chip;
@@ -459,7 +459,7 @@
 
 int ftsdc010_mmc_bind(struct udevice *dev)
 {
-	struct ftsdc010_plat *plat = dev_get_platdata(dev);
+	struct ftsdc010_plat *plat = dev_get_plat(dev);
 
 	return mmc_bind(dev, &plat->mmc, &plat->cfg);
 }
diff --git a/drivers/mmc/gen_atmel_mci.c b/drivers/mmc/gen_atmel_mci.c
index 6f056ae..da81425 100644
--- a/drivers/mmc/gen_atmel_mci.c
+++ b/drivers/mmc/gen_atmel_mci.c
@@ -91,7 +91,7 @@
 #ifdef CONFIG_DM_MMC
 static void mci_set_mode(struct udevice *dev, u32 hz, u32 blklen)
 {
-	struct atmel_mci_plat *plat = dev_get_platdata(dev);
+	struct atmel_mci_plat *plat = dev_get_plat(dev);
 	struct atmel_mci_priv *priv = dev_get_priv(dev);
 	struct mmc *mmc = &plat->mmc;
 	u32 bus_hz = priv->bus_clk_rate;
@@ -242,7 +242,7 @@
 static int atmel_mci_send_cmd(struct udevice *dev, struct mmc_cmd *cmd,
 			      struct mmc_data *data)
 {
-	struct atmel_mci_plat *plat = dev_get_platdata(dev);
+	struct atmel_mci_plat *plat = dev_get_plat(dev);
 	struct atmel_mci_priv *priv = dev_get_priv(dev);
 	atmel_mci_t *mci = plat->mci;
 #else
@@ -373,7 +373,7 @@
 #ifdef CONFIG_DM_MMC
 static int atmel_mci_set_ios(struct udevice *dev)
 {
-	struct atmel_mci_plat *plat = dev_get_platdata(dev);
+	struct atmel_mci_plat *plat = dev_get_plat(dev);
 	struct mmc *mmc = mmc_get_mmc_dev(dev);
 	atmel_mci_t *mci = plat->mci;
 #else
@@ -424,7 +424,7 @@
 #ifdef CONFIG_DM_MMC
 static int atmel_mci_hw_init(struct udevice *dev)
 {
-	struct atmel_mci_plat *plat = dev_get_platdata(dev);
+	struct atmel_mci_plat *plat = dev_get_plat(dev);
 	atmel_mci_t *mci = plat->mci;
 #else
 /* Entered into mmc structure during driver init */
@@ -525,7 +525,7 @@
 
 static void atmel_mci_setup_cfg(struct udevice *dev)
 {
-	struct atmel_mci_plat *plat = dev_get_platdata(dev);
+	struct atmel_mci_plat *plat = dev_get_plat(dev);
 	struct atmel_mci_priv *priv = dev_get_priv(dev);
 	struct mmc_config *cfg;
 	u32 version;
@@ -584,7 +584,7 @@
 static int atmel_mci_probe(struct udevice *dev)
 {
 	struct mmc_uclass_priv *upriv = dev_get_uclass_priv(dev);
-	struct atmel_mci_plat *plat = dev_get_platdata(dev);
+	struct atmel_mci_plat *plat = dev_get_plat(dev);
 	struct mmc *mmc;
 	int ret;
 
@@ -608,7 +608,7 @@
 
 static int atmel_mci_bind(struct udevice *dev)
 {
-	struct atmel_mci_plat *plat = dev_get_platdata(dev);
+	struct atmel_mci_plat *plat = dev_get_plat(dev);
 
 	return mmc_bind(dev, &plat->mmc, &plat->cfg);
 }
diff --git a/drivers/mmc/hi6220_dw_mmc.c b/drivers/mmc/hi6220_dw_mmc.c
index ae9f5a0..5fd71b8 100644
--- a/drivers/mmc/hi6220_dw_mmc.c
+++ b/drivers/mmc/hi6220_dw_mmc.c
@@ -50,7 +50,7 @@
 
 static int hi6220_dwmmc_probe(struct udevice *dev)
 {
-	struct hi6220_dwmmc_plat *plat = dev_get_platdata(dev);
+	struct hi6220_dwmmc_plat *plat = dev_get_plat(dev);
 	struct mmc_uclass_priv *upriv = dev_get_uclass_priv(dev);
 	struct hi6220_dwmmc_priv_data *priv = dev_get_priv(dev);
 	struct dwmci_host *host = &priv->host;
@@ -74,7 +74,7 @@
 
 static int hi6220_dwmmc_bind(struct udevice *dev)
 {
-	struct hi6220_dwmmc_plat *plat = dev_get_platdata(dev);
+	struct hi6220_dwmmc_plat *plat = dev_get_plat(dev);
 	int ret;
 
 	ret = dwmci_bind(dev, &plat->mmc, &plat->cfg);
diff --git a/drivers/mmc/iproc_sdhci.c b/drivers/mmc/iproc_sdhci.c
index a85697c..f931e4b 100644
--- a/drivers/mmc/iproc_sdhci.c
+++ b/drivers/mmc/iproc_sdhci.c
@@ -172,7 +172,7 @@
 static int iproc_sdhci_probe(struct udevice *dev)
 {
 	struct mmc_uclass_priv *upriv = dev_get_uclass_priv(dev);
-	struct iproc_sdhci_plat *plat = dev_get_platdata(dev);
+	struct iproc_sdhci_plat *plat = dev_get_plat(dev);
 	struct sdhci_host *host = dev_get_priv(dev);
 	struct sdhci_iproc_host *iproc_host;
 	int node = dev_of_offset(dev);
@@ -230,7 +230,7 @@
 
 static int iproc_sdhci_bind(struct udevice *dev)
 {
-	struct iproc_sdhci_plat *plat = dev_get_platdata(dev);
+	struct iproc_sdhci_plat *plat = dev_get_plat(dev);
 
 	return sdhci_bind(dev, &plat->mmc, &plat->cfg);
 }
diff --git a/drivers/mmc/jz_mmc.c b/drivers/mmc/jz_mmc.c
index 99f2c2f..edcfbfb 100644
--- a/drivers/mmc/jz_mmc.c
+++ b/drivers/mmc/jz_mmc.c
@@ -446,7 +446,7 @@
 static int jz_mmc_ofdata_to_platdata(struct udevice *dev)
 {
 	struct jz_mmc_priv *priv = dev_get_priv(dev);
-	struct jz_mmc_plat *plat = dev_get_platdata(dev);
+	struct jz_mmc_plat *plat = dev_get_plat(dev);
 	struct mmc_config *cfg;
 	int ret;
 
@@ -473,7 +473,7 @@
 
 static int jz_mmc_bind(struct udevice *dev)
 {
-	struct jz_mmc_plat *plat = dev_get_platdata(dev);
+	struct jz_mmc_plat *plat = dev_get_plat(dev);
 
 	return mmc_bind(dev, &plat->mmc, &plat->cfg);
 }
@@ -482,7 +482,7 @@
 {
 	struct mmc_uclass_priv *upriv = dev_get_uclass_priv(dev);
 	struct jz_mmc_priv *priv = dev_get_priv(dev);
-	struct jz_mmc_plat *plat = dev_get_platdata(dev);
+	struct jz_mmc_plat *plat = dev_get_plat(dev);
 
 	plat->mmc.priv = priv;
 	upriv->mmc = &plat->mmc;
diff --git a/drivers/mmc/meson_gx_mmc.c b/drivers/mmc/meson_gx_mmc.c
index 6a9662f..ab10d7c 100644
--- a/drivers/mmc/meson_gx_mmc.c
+++ b/drivers/mmc/meson_gx_mmc.c
@@ -243,7 +243,7 @@
 
 static int meson_mmc_ofdata_to_platdata(struct udevice *dev)
 {
-	struct meson_mmc_platdata *pdata = dev_get_platdata(dev);
+	struct meson_mmc_platdata *pdata = dev_get_plat(dev);
 	fdt_addr_t addr;
 
 	addr = dev_read_addr(dev);
@@ -257,7 +257,7 @@
 
 static int meson_mmc_probe(struct udevice *dev)
 {
-	struct meson_mmc_platdata *pdata = dev_get_platdata(dev);
+	struct meson_mmc_platdata *pdata = dev_get_plat(dev);
 	struct mmc_uclass_priv *upriv = dev_get_uclass_priv(dev);
 	struct mmc *mmc = &pdata->mmc;
 	struct mmc_config *cfg = &pdata->cfg;
@@ -320,7 +320,7 @@
 
 int meson_mmc_bind(struct udevice *dev)
 {
-	struct meson_mmc_platdata *pdata = dev_get_platdata(dev);
+	struct meson_mmc_platdata *pdata = dev_get_plat(dev);
 
 	return mmc_bind(dev, &pdata->mmc, &pdata->cfg);
 }
diff --git a/drivers/mmc/mmc_spi.c b/drivers/mmc/mmc_spi.c
index d0c4397..51b1aa4 100644
--- a/drivers/mmc/mmc_spi.c
+++ b/drivers/mmc/mmc_spi.c
@@ -411,7 +411,7 @@
 static int mmc_spi_probe(struct udevice *dev)
 {
 	struct mmc_spi_priv *priv = dev_get_priv(dev);
-	struct mmc_spi_plat *plat = dev_get_platdata(dev);
+	struct mmc_spi_plat *plat = dev_get_plat(dev);
 	struct mmc_uclass_priv *upriv = dev_get_uclass_priv(dev);
 	char *name;
 
@@ -446,7 +446,7 @@
 
 static int mmc_spi_bind(struct udevice *dev)
 {
-	struct mmc_spi_plat *plat = dev_get_platdata(dev);
+	struct mmc_spi_plat *plat = dev_get_plat(dev);
 
 	return mmc_bind(dev, &plat->mmc, &plat->cfg);
 }
diff --git a/drivers/mmc/msm_sdhci.c b/drivers/mmc/msm_sdhci.c
index 45bf269..da4cecd 100644
--- a/drivers/mmc/msm_sdhci.c
+++ b/drivers/mmc/msm_sdhci.c
@@ -87,7 +87,7 @@
 static int msm_sdc_probe(struct udevice *dev)
 {
 	struct mmc_uclass_priv *upriv = dev_get_uclass_priv(dev);
-	struct msm_sdhc_plat *plat = dev_get_platdata(dev);
+	struct msm_sdhc_plat *plat = dev_get_plat(dev);
 	struct msm_sdhc *prv = dev_get_priv(dev);
 	struct sdhci_host *host = &prv->host;
 	u32 core_version, core_minor, core_major;
@@ -189,7 +189,7 @@
 
 static int msm_sdc_bind(struct udevice *dev)
 {
-	struct msm_sdhc_plat *plat = dev_get_platdata(dev);
+	struct msm_sdhc_plat *plat = dev_get_plat(dev);
 
 	return sdhci_bind(dev, &plat->mmc, &plat->cfg);
 }
diff --git a/drivers/mmc/mtk-sd.c b/drivers/mmc/mtk-sd.c
index 59217e5..cc9d685 100644
--- a/drivers/mmc/mtk-sd.c
+++ b/drivers/mmc/mtk-sd.c
@@ -885,7 +885,7 @@
 
 static int msdc_ops_set_ios(struct udevice *dev)
 {
-	struct msdc_plat *plat = dev_get_platdata(dev);
+	struct msdc_plat *plat = dev_get_plat(dev);
 	struct msdc_host *host = dev_get_priv(dev);
 	struct mmc *mmc = &plat->mmc;
 	uint clock = mmc->clock;
@@ -1031,7 +1031,7 @@
 
 static int hs400_tune_response(struct udevice *dev, u32 opcode)
 {
-	struct msdc_plat *plat = dev_get_platdata(dev);
+	struct msdc_plat *plat = dev_get_plat(dev);
 	struct msdc_host *host = dev_get_priv(dev);
 	struct mmc *mmc = &plat->mmc;
 	u32 cmd_delay  = 0;
@@ -1081,7 +1081,7 @@
 
 static int msdc_tune_response(struct udevice *dev, u32 opcode)
 {
-	struct msdc_plat *plat = dev_get_platdata(dev);
+	struct msdc_plat *plat = dev_get_plat(dev);
 	struct msdc_host *host = dev_get_priv(dev);
 	struct mmc *mmc = &plat->mmc;
 	u32 rise_delay = 0, fall_delay = 0;
@@ -1185,7 +1185,7 @@
 
 static int msdc_tune_data(struct udevice *dev, u32 opcode)
 {
-	struct msdc_plat *plat = dev_get_platdata(dev);
+	struct msdc_plat *plat = dev_get_plat(dev);
 	struct msdc_host *host = dev_get_priv(dev);
 	struct mmc *mmc = &plat->mmc;
 	u32 rise_delay = 0, fall_delay = 0;
@@ -1276,7 +1276,7 @@
  */
 static int msdc_tune_together(struct udevice *dev, u32 opcode)
 {
-	struct msdc_plat *plat = dev_get_platdata(dev);
+	struct msdc_plat *plat = dev_get_plat(dev);
 	struct msdc_host *host = dev_get_priv(dev);
 	struct mmc *mmc = &plat->mmc;
 	u32 rise_delay = 0, fall_delay = 0;
@@ -1334,7 +1334,7 @@
 
 static int msdc_execute_tuning(struct udevice *dev, uint opcode)
 {
-	struct msdc_plat *plat = dev_get_platdata(dev);
+	struct msdc_plat *plat = dev_get_plat(dev);
 	struct msdc_host *host = dev_get_priv(dev);
 	struct mmc *mmc = &plat->mmc;
 	int ret = 0;
@@ -1511,7 +1511,7 @@
 static int msdc_drv_probe(struct udevice *dev)
 {
 	struct mmc_uclass_priv *upriv = dev_get_uclass_priv(dev);
-	struct msdc_plat *plat = dev_get_platdata(dev);
+	struct msdc_plat *plat = dev_get_plat(dev);
 	struct msdc_host *host = dev_get_priv(dev);
 	struct mmc_config *cfg = &plat->cfg;
 
@@ -1547,7 +1547,7 @@
 
 static int msdc_ofdata_to_platdata(struct udevice *dev)
 {
-	struct msdc_plat *plat = dev_get_platdata(dev);
+	struct msdc_plat *plat = dev_get_plat(dev);
 	struct msdc_host *host = dev_get_priv(dev);
 	struct mmc_config *cfg = &plat->cfg;
 	fdt_addr_t base, top_base;
@@ -1598,7 +1598,7 @@
 
 static int msdc_drv_bind(struct udevice *dev)
 {
-	struct msdc_plat *plat = dev_get_platdata(dev);
+	struct msdc_plat *plat = dev_get_plat(dev);
 
 	return mmc_bind(dev, &plat->mmc, &plat->cfg);
 }
diff --git a/drivers/mmc/mv_sdhci.c b/drivers/mmc/mv_sdhci.c
index 4cc1613..556dd38 100644
--- a/drivers/mmc/mv_sdhci.c
+++ b/drivers/mmc/mv_sdhci.c
@@ -107,7 +107,7 @@
 static int mv_sdhci_probe(struct udevice *dev)
 {
 	struct mmc_uclass_priv *upriv = dev_get_uclass_priv(dev);
-	struct mv_sdhci_plat *plat = dev_get_platdata(dev);
+	struct mv_sdhci_plat *plat = dev_get_plat(dev);
 	struct sdhci_host *host = dev_get_priv(dev);
 	int ret;
 
@@ -134,7 +134,7 @@
 
 static int mv_sdhci_bind(struct udevice *dev)
 {
-	struct mv_sdhci_plat *plat = dev_get_platdata(dev);
+	struct mv_sdhci_plat *plat = dev_get_plat(dev);
 
 	return sdhci_bind(dev, &plat->mmc, &plat->cfg);
 }
diff --git a/drivers/mmc/mxsmmc.c b/drivers/mmc/mxsmmc.c
index a313791..dcf6c7c 100644
--- a/drivers/mmc/mxsmmc.c
+++ b/drivers/mmc/mxsmmc.c
@@ -310,7 +310,7 @@
 static int
 mxsmmc_send_cmd(struct udevice *dev, struct mmc_cmd *cmd, struct mmc_data *data)
 {
-	struct mxsmmc_platdata *plat = dev_get_platdata(dev);
+	struct mxsmmc_platdata *plat = dev_get_plat(dev);
 	struct mxsmmc_priv *priv = dev_get_priv(dev);
 	struct mxs_ssp_regs *ssp_regs = priv->regs;
 	struct mmc *mmc = &plat->mmc;
@@ -490,7 +490,7 @@
 
 static int mxsmmc_get_cd(struct udevice *dev)
 {
-	struct mxsmmc_platdata *plat = dev_get_platdata(dev);
+	struct mxsmmc_platdata *plat = dev_get_plat(dev);
 	struct mxsmmc_priv *priv = dev_get_priv(dev);
 	struct mxs_ssp_regs *ssp_regs = priv->regs;
 
@@ -502,7 +502,7 @@
 
 static int mxsmmc_set_ios(struct udevice *dev)
 {
-	struct mxsmmc_platdata *plat = dev_get_platdata(dev);
+	struct mxsmmc_platdata *plat = dev_get_plat(dev);
 	struct mxsmmc_priv *priv = dev_get_priv(dev);
 	struct mxs_ssp_regs *ssp_regs = priv->regs;
 	struct mmc *mmc = &plat->mmc;
@@ -567,7 +567,7 @@
 static int mxsmmc_probe(struct udevice *dev)
 {
 	struct mmc_uclass_priv *upriv = dev_get_uclass_priv(dev);
-	struct mxsmmc_platdata *plat = dev_get_platdata(dev);
+	struct mxsmmc_platdata *plat = dev_get_plat(dev);
 	struct mxsmmc_priv *priv = dev_get_priv(dev);
 	struct blk_desc *bdesc;
 	struct mmc *mmc;
@@ -653,7 +653,7 @@
 #if CONFIG_IS_ENABLED(BLK)
 static int mxsmmc_bind(struct udevice *dev)
 {
-	struct mxsmmc_platdata *plat = dev_get_platdata(dev);
+	struct mxsmmc_platdata *plat = dev_get_plat(dev);
 
 	return mmc_bind(dev, &plat->mmc, &plat->cfg);
 }
diff --git a/drivers/mmc/nexell_dw_mmc.c b/drivers/mmc/nexell_dw_mmc.c
index d03d589..537be0d 100644
--- a/drivers/mmc/nexell_dw_mmc.c
+++ b/drivers/mmc/nexell_dw_mmc.c
@@ -179,7 +179,7 @@
 
 static int nexell_dwmmc_probe(struct udevice *dev)
 {
-	struct nexell_mmc_plat *plat = dev_get_platdata(dev);
+	struct nexell_mmc_plat *plat = dev_get_plat(dev);
 	struct mmc_uclass_priv *upriv = dev_get_uclass_priv(dev);
 	struct nexell_dwmmc_priv *priv = dev_get_priv(dev);
 	struct dwmci_host *host = &priv->host;
@@ -214,7 +214,7 @@
 
 static int nexell_dwmmc_bind(struct udevice *dev)
 {
-	struct nexell_mmc_plat *plat = dev_get_platdata(dev);
+	struct nexell_mmc_plat *plat = dev_get_plat(dev);
 
 	return dwmci_bind(dev, &plat->mmc, &plat->cfg);
 }
diff --git a/drivers/mmc/omap_hsmmc.c b/drivers/mmc/omap_hsmmc.c
index 658fd92..c4e9e82 100644
--- a/drivers/mmc/omap_hsmmc.c
+++ b/drivers/mmc/omap_hsmmc.c
@@ -180,7 +180,7 @@
 static inline struct mmc_config *omap_hsmmc_get_cfg(struct mmc *mmc)
 {
 #if CONFIG_IS_ENABLED(DM_MMC)
-	struct omap_hsmmc_plat *plat = dev_get_platdata(mmc->dev);
+	struct omap_hsmmc_plat *plat = dev_get_plat(mmc->dev);
 	return &plat->cfg;
 #else
 	return &((struct omap_hsmmc_data *)mmc->priv)->cfg;
@@ -1900,7 +1900,7 @@
 
 static int omap_hsmmc_ofdata_to_platdata(struct udevice *dev)
 {
-	struct omap_hsmmc_plat *plat = dev_get_platdata(dev);
+	struct omap_hsmmc_plat *plat = dev_get_plat(dev);
 	struct omap_mmc_of_data *of_data = (void *)dev_get_driver_data(dev);
 
 	struct mmc_config *cfg = &plat->cfg;
@@ -1949,14 +1949,14 @@
 
 static int omap_hsmmc_bind(struct udevice *dev)
 {
-	struct omap_hsmmc_plat *plat = dev_get_platdata(dev);
+	struct omap_hsmmc_plat *plat = dev_get_plat(dev);
 	plat->mmc = calloc(1, sizeof(struct mmc));
 	return mmc_bind(dev, plat->mmc, &plat->cfg);
 }
 #endif
 static int omap_hsmmc_probe(struct udevice *dev)
 {
-	struct omap_hsmmc_plat *plat = dev_get_platdata(dev);
+	struct omap_hsmmc_plat *plat = dev_get_plat(dev);
 	struct mmc_uclass_priv *upriv = dev_get_uclass_priv(dev);
 	struct omap_hsmmc_data *priv = dev_get_priv(dev);
 	struct mmc_config *cfg = &plat->cfg;
diff --git a/drivers/mmc/pci_mmc.c b/drivers/mmc/pci_mmc.c
index d2cc58f..0aec3f7 100644
--- a/drivers/mmc/pci_mmc.c
+++ b/drivers/mmc/pci_mmc.c
@@ -31,7 +31,7 @@
 static int pci_mmc_probe(struct udevice *dev)
 {
 	struct mmc_uclass_priv *upriv = dev_get_uclass_priv(dev);
-	struct pci_mmc_plat *plat = dev_get_platdata(dev);
+	struct pci_mmc_plat *plat = dev_get_plat(dev);
 	struct pci_mmc_priv *priv = dev_get_priv(dev);
 	struct sdhci_host *host = &priv->host;
 	int ret;
@@ -61,7 +61,7 @@
 
 static int pci_mmc_bind(struct udevice *dev)
 {
-	struct pci_mmc_plat *plat = dev_get_platdata(dev);
+	struct pci_mmc_plat *plat = dev_get_plat(dev);
 
 	return sdhci_bind(dev, &plat->mmc, &plat->cfg);
 }
diff --git a/drivers/mmc/pic32_sdhci.c b/drivers/mmc/pic32_sdhci.c
index 04eece5..fb37c67 100644
--- a/drivers/mmc/pic32_sdhci.c
+++ b/drivers/mmc/pic32_sdhci.c
@@ -18,7 +18,7 @@
 static int pic32_sdhci_probe(struct udevice *dev)
 {
 	struct mmc_uclass_priv *upriv = dev_get_uclass_priv(dev);
-	struct pic32_sdhci_plat *plat = dev_get_platdata(dev);
+	struct pic32_sdhci_plat *plat = dev_get_plat(dev);
 	struct sdhci_host *host = dev_get_priv(dev);
 
 	struct clk clk;
@@ -71,7 +71,7 @@
 
 static int pic32_sdhci_bind(struct udevice *dev)
 {
-	struct pic32_sdhci_plat *plat = dev_get_platdata(dev);
+	struct pic32_sdhci_plat *plat = dev_get_plat(dev);
 
 	return sdhci_bind(dev, &plat->mmc, &plat->cfg);
 }
diff --git a/drivers/mmc/pxa_mmc_gen.c b/drivers/mmc/pxa_mmc_gen.c
index 8be9ed6..2b45549 100644
--- a/drivers/mmc/pxa_mmc_gen.c
+++ b/drivers/mmc/pxa_mmc_gen.c
@@ -459,7 +459,7 @@
 static int pxa_mmc_probe(struct udevice *dev)
 {
 	struct mmc_uclass_priv *upriv = dev_get_uclass_priv(dev);
-	struct pxa_mmc_plat *plat = dev_get_platdata(dev);
+	struct pxa_mmc_plat *plat = dev_get_plat(dev);
 	struct mmc_config *cfg = &plat->cfg;
 	struct mmc *mmc = &plat->mmc;
 	struct pxa_mmc_priv *priv = dev_get_priv(dev);
@@ -494,7 +494,7 @@
 static int pxa_mmc_send_cmd(struct udevice *dev, struct mmc_cmd *cmd,
 			    struct mmc_data *data)
 {
-	struct pxa_mmc_plat *plat = dev_get_platdata(dev);
+	struct pxa_mmc_plat *plat = dev_get_plat(dev);
 	struct pxa_mmc_priv *priv = dev_get_priv(dev);
 
 	return pxa_mmc_send_cmd_common(priv, &plat->mmc, cmd, data);
@@ -502,7 +502,7 @@
 
 static int pxa_mmc_set_ios(struct udevice *dev)
 {
-	struct pxa_mmc_plat *plat = dev_get_platdata(dev);
+	struct pxa_mmc_plat *plat = dev_get_plat(dev);
 	struct pxa_mmc_priv *priv = dev_get_priv(dev);
 
 	return pxa_mmc_set_ios_common(priv, &plat->mmc);
@@ -517,7 +517,7 @@
 #if CONFIG_IS_ENABLED(BLK)
 static int pxa_mmc_bind(struct udevice *dev)
 {
-	struct pxa_mmc_plat *plat = dev_get_platdata(dev);
+	struct pxa_mmc_plat *plat = dev_get_plat(dev);
 
 	return mmc_bind(dev, &plat->mmc, &plat->cfg);
 }
diff --git a/drivers/mmc/renesas-sdhi.c b/drivers/mmc/renesas-sdhi.c
index 37c80ef..24130e6 100644
--- a/drivers/mmc/renesas-sdhi.c
+++ b/drivers/mmc/renesas-sdhi.c
@@ -865,7 +865,7 @@
 #if CONFIG_IS_ENABLED(MMC_UHS_SUPPORT) || \
     CONFIG_IS_ENABLED(MMC_HS200_SUPPORT) || \
     CONFIG_IS_ENABLED(MMC_HS400_SUPPORT)
-	struct tmio_sd_plat *plat = dev_get_platdata(dev);
+	struct tmio_sd_plat *plat = dev_get_plat(dev);
 
 	/* HS400 is not supported on H3 ES1.x and M3W ES1.0, ES1.1 */
 	if (((rmobile_get_cpu_type() == RMOBILE_CPU_TYPE_R8A7795) &&
diff --git a/drivers/mmc/rockchip_dw_mmc.c b/drivers/mmc/rockchip_dw_mmc.c
index 67eb89b..51a6b4d 100644
--- a/drivers/mmc/rockchip_dw_mmc.c
+++ b/drivers/mmc/rockchip_dw_mmc.c
@@ -101,7 +101,7 @@
 
 static int rockchip_dwmmc_probe(struct udevice *dev)
 {
-	struct rockchip_mmc_plat *plat = dev_get_platdata(dev);
+	struct rockchip_mmc_plat *plat = dev_get_plat(dev);
 	struct mmc_uclass_priv *upriv = dev_get_uclass_priv(dev);
 	struct rockchip_dwmmc_priv *priv = dev_get_priv(dev);
 	struct dwmci_host *host = &priv->host;
@@ -157,7 +157,7 @@
 
 static int rockchip_dwmmc_bind(struct udevice *dev)
 {
-	struct rockchip_mmc_plat *plat = dev_get_platdata(dev);
+	struct rockchip_mmc_plat *plat = dev_get_plat(dev);
 
 	return dwmci_bind(dev, &plat->mmc, &plat->cfg);
 }
diff --git a/drivers/mmc/rockchip_sdhci.c b/drivers/mmc/rockchip_sdhci.c
index 427d41e..939b234 100644
--- a/drivers/mmc/rockchip_sdhci.c
+++ b/drivers/mmc/rockchip_sdhci.c
@@ -34,7 +34,7 @@
 static int arasan_sdhci_probe(struct udevice *dev)
 {
 	struct mmc_uclass_priv *upriv = dev_get_uclass_priv(dev);
-	struct rockchip_sdhc_plat *plat = dev_get_platdata(dev);
+	struct rockchip_sdhc_plat *plat = dev_get_plat(dev);
 	struct rockchip_sdhc *prv = dev_get_priv(dev);
 	struct sdhci_host *host = &prv->host;
 	int max_frequency, ret;
@@ -96,7 +96,7 @@
 
 static int rockchip_sdhci_bind(struct udevice *dev)
 {
-	struct rockchip_sdhc_plat *plat = dev_get_platdata(dev);
+	struct rockchip_sdhc_plat *plat = dev_get_plat(dev);
 
 	return sdhci_bind(dev, &plat->mmc, &plat->cfg);
 }
diff --git a/drivers/mmc/s5p_sdhci.c b/drivers/mmc/s5p_sdhci.c
index 82aff9c..3cf56e0 100644
--- a/drivers/mmc/s5p_sdhci.c
+++ b/drivers/mmc/s5p_sdhci.c
@@ -192,7 +192,7 @@
 #ifdef CONFIG_DM_MMC
 static int s5p_sdhci_probe(struct udevice *dev)
 {
-	struct s5p_sdhci_plat *plat = dev_get_platdata(dev);
+	struct s5p_sdhci_plat *plat = dev_get_plat(dev);
 	struct mmc_uclass_priv *upriv = dev_get_uclass_priv(dev);
 	struct sdhci_host *host = dev_get_priv(dev);
 	int ret;
@@ -224,7 +224,7 @@
 
 static int s5p_sdhci_bind(struct udevice *dev)
 {
-	struct s5p_sdhci_plat *plat = dev_get_platdata(dev);
+	struct s5p_sdhci_plat *plat = dev_get_plat(dev);
 	int ret;
 
 	ret = sdhci_bind(dev, &plat->mmc, &plat->cfg);
diff --git a/drivers/mmc/sandbox_mmc.c b/drivers/mmc/sandbox_mmc.c
index 17c6cea..8a2391d 100644
--- a/drivers/mmc/sandbox_mmc.c
+++ b/drivers/mmc/sandbox_mmc.c
@@ -108,14 +108,14 @@
 
 int sandbox_mmc_probe(struct udevice *dev)
 {
-	struct sandbox_mmc_plat *plat = dev_get_platdata(dev);
+	struct sandbox_mmc_plat *plat = dev_get_plat(dev);
 
 	return mmc_init(&plat->mmc);
 }
 
 int sandbox_mmc_bind(struct udevice *dev)
 {
-	struct sandbox_mmc_plat *plat = dev_get_platdata(dev);
+	struct sandbox_mmc_plat *plat = dev_get_plat(dev);
 	struct mmc_config *cfg = &plat->cfg;
 
 	cfg->name = dev->name;
diff --git a/drivers/mmc/sdhci-cadence.c b/drivers/mmc/sdhci-cadence.c
index ffbac44..2b726c2 100644
--- a/drivers/mmc/sdhci-cadence.c
+++ b/drivers/mmc/sdhci-cadence.c
@@ -135,7 +135,7 @@
 static void sdhci_cdns_set_control_reg(struct sdhci_host *host)
 {
 	struct mmc *mmc = host->mmc;
-	struct sdhci_cdns_plat *plat = dev_get_platdata(mmc->dev);
+	struct sdhci_cdns_plat *plat = dev_get_plat(mmc->dev);
 	unsigned int clock = mmc->clock;
 	u32 mode, tmp;
 
@@ -203,7 +203,7 @@
 static int __maybe_unused sdhci_cdns_execute_tuning(struct udevice *dev,
 						    unsigned int opcode)
 {
-	struct sdhci_cdns_plat *plat = dev_get_platdata(dev);
+	struct sdhci_cdns_plat *plat = dev_get_plat(dev);
 	struct mmc *mmc = &plat->mmc;
 	int cur_streak = 0;
 	int max_streak = 0;
@@ -246,7 +246,7 @@
 
 static int sdhci_cdns_bind(struct udevice *dev)
 {
-	struct sdhci_cdns_plat *plat = dev_get_platdata(dev);
+	struct sdhci_cdns_plat *plat = dev_get_plat(dev);
 
 	return sdhci_bind(dev, &plat->mmc, &plat->cfg);
 }
@@ -255,7 +255,7 @@
 {
 	DECLARE_GLOBAL_DATA_PTR;
 	struct mmc_uclass_priv *upriv = dev_get_uclass_priv(dev);
-	struct sdhci_cdns_plat *plat = dev_get_platdata(dev);
+	struct sdhci_cdns_plat *plat = dev_get_plat(dev);
 	struct sdhci_host *host = dev_get_priv(dev);
 	fdt_addr_t base;
 	int ret;
diff --git a/drivers/mmc/sh_mmcif.c b/drivers/mmc/sh_mmcif.c
index 723e3e3..af342f2 100644
--- a/drivers/mmc/sh_mmcif.c
+++ b/drivers/mmc/sh_mmcif.c
@@ -666,14 +666,14 @@
 
 static int sh_mmcif_dm_bind(struct udevice *dev)
 {
-	struct sh_mmcif_plat *plat = dev_get_platdata(dev);
+	struct sh_mmcif_plat *plat = dev_get_plat(dev);
 
 	return mmc_bind(dev, &plat->mmc, &plat->cfg);
 }
 
 static int sh_mmcif_dm_probe(struct udevice *dev)
 {
-	struct sh_mmcif_plat *plat = dev_get_platdata(dev);
+	struct sh_mmcif_plat *plat = dev_get_plat(dev);
 	struct sh_mmcif_host *host = dev_get_priv(dev);
 	struct mmc_uclass_priv *upriv = dev_get_uclass_priv(dev);
 	struct clk sh_mmcif_clk;
diff --git a/drivers/mmc/sh_sdhi.c b/drivers/mmc/sh_sdhi.c
index 9fcd0e0..b8865b1 100644
--- a/drivers/mmc/sh_sdhi.c
+++ b/drivers/mmc/sh_sdhi.c
@@ -818,14 +818,14 @@
 
 static int sh_sdhi_dm_bind(struct udevice *dev)
 {
-	struct sh_sdhi_plat *plat = dev_get_platdata(dev);
+	struct sh_sdhi_plat *plat = dev_get_plat(dev);
 
 	return mmc_bind(dev, &plat->mmc, &plat->cfg);
 }
 
 static int sh_sdhi_dm_probe(struct udevice *dev)
 {
-	struct sh_sdhi_plat *plat = dev_get_platdata(dev);
+	struct sh_sdhi_plat *plat = dev_get_plat(dev);
 	struct sh_sdhi_host *host = dev_get_priv(dev);
 	struct mmc_uclass_priv *upriv = dev_get_uclass_priv(dev);
 	struct clk sh_sdhi_clk;
diff --git a/drivers/mmc/snps_dw_mmc.c b/drivers/mmc/snps_dw_mmc.c
index 0533bc2..ad274f5 100644
--- a/drivers/mmc/snps_dw_mmc.c
+++ b/drivers/mmc/snps_dw_mmc.c
@@ -132,7 +132,7 @@
 static int snps_dwmmc_probe(struct udevice *dev)
 {
 #ifdef CONFIG_BLK
-	struct snps_dwmci_plat *plat = dev_get_platdata(dev);
+	struct snps_dwmci_plat *plat = dev_get_plat(dev);
 #endif
 	struct mmc_uclass_priv *upriv = dev_get_uclass_priv(dev);
 	struct snps_dwmci_priv_data *priv = dev_get_priv(dev);
@@ -171,7 +171,7 @@
 static int snps_dwmmc_bind(struct udevice *dev)
 {
 #ifdef CONFIG_BLK
-	struct snps_dwmci_plat *plat = dev_get_platdata(dev);
+	struct snps_dwmci_plat *plat = dev_get_plat(dev);
 	int ret;
 
 	ret = dwmci_bind(dev, &plat->mmc, &plat->cfg);
diff --git a/drivers/mmc/socfpga_dw_mmc.c b/drivers/mmc/socfpga_dw_mmc.c
index 2d5efb9..84f8b8d 100644
--- a/drivers/mmc/socfpga_dw_mmc.c
+++ b/drivers/mmc/socfpga_dw_mmc.c
@@ -133,7 +133,7 @@
 static int socfpga_dwmmc_probe(struct udevice *dev)
 {
 #ifdef CONFIG_BLK
-	struct socfpga_dwmci_plat *plat = dev_get_platdata(dev);
+	struct socfpga_dwmci_plat *plat = dev_get_plat(dev);
 #endif
 	struct mmc_uclass_priv *upriv = dev_get_uclass_priv(dev);
 	struct dwmci_socfpga_priv_data *priv = dev_get_priv(dev);
@@ -165,7 +165,7 @@
 static int socfpga_dwmmc_bind(struct udevice *dev)
 {
 #ifdef CONFIG_BLK
-	struct socfpga_dwmci_plat *plat = dev_get_platdata(dev);
+	struct socfpga_dwmci_plat *plat = dev_get_plat(dev);
 	int ret;
 
 	ret = dwmci_bind(dev, &plat->mmc, &plat->cfg);
diff --git a/drivers/mmc/sti_sdhci.c b/drivers/mmc/sti_sdhci.c
index 1da569c..4ad408a 100644
--- a/drivers/mmc/sti_sdhci.c
+++ b/drivers/mmc/sti_sdhci.c
@@ -35,7 +35,7 @@
  */
 static int sti_mmc_core_config(struct udevice *dev)
 {
-	struct sti_sdhci_plat *plat = dev_get_platdata(dev);
+	struct sti_sdhci_plat *plat = dev_get_plat(dev);
 	struct sdhci_host *host = dev_get_priv(dev);
 	int ret;
 
@@ -71,7 +71,7 @@
 static int sti_sdhci_probe(struct udevice *dev)
 {
 	struct mmc_uclass_priv *upriv = dev_get_uclass_priv(dev);
-	struct sti_sdhci_plat *plat = dev_get_platdata(dev);
+	struct sti_sdhci_plat *plat = dev_get_plat(dev);
 	struct sdhci_host *host = dev_get_priv(dev);
 	int ret;
 
@@ -126,7 +126,7 @@
 
 static int sti_sdhci_bind(struct udevice *dev)
 {
-	struct sti_sdhci_plat *plat = dev_get_platdata(dev);
+	struct sti_sdhci_plat *plat = dev_get_plat(dev);
 
 	return sdhci_bind(dev, &plat->mmc, &plat->cfg);
 }
diff --git a/drivers/mmc/stm32_sdmmc2.c b/drivers/mmc/stm32_sdmmc2.c
index df5bb78..76a6a07 100644
--- a/drivers/mmc/stm32_sdmmc2.c
+++ b/drivers/mmc/stm32_sdmmc2.c
@@ -644,7 +644,7 @@
 static int stm32_sdmmc2_probe(struct udevice *dev)
 {
 	struct mmc_uclass_priv *upriv = dev_get_uclass_priv(dev);
-	struct stm32_sdmmc2_plat *plat = dev_get_platdata(dev);
+	struct stm32_sdmmc2_plat *plat = dev_get_plat(dev);
 	struct stm32_sdmmc2_priv *priv = dev_get_priv(dev);
 	struct mmc_config *cfg = &plat->cfg;
 	int ret;
@@ -700,7 +700,7 @@
 
 static int stm32_sdmmc_bind(struct udevice *dev)
 {
-	struct stm32_sdmmc2_plat *plat = dev_get_platdata(dev);
+	struct stm32_sdmmc2_plat *plat = dev_get_plat(dev);
 
 	return mmc_bind(dev, &plat->mmc, &plat->cfg);
 }
diff --git a/drivers/mmc/sunxi_mmc.c b/drivers/mmc/sunxi_mmc.c
index 7490e86..b33f80b 100644
--- a/drivers/mmc/sunxi_mmc.c
+++ b/drivers/mmc/sunxi_mmc.c
@@ -572,7 +572,7 @@
 
 static int sunxi_mmc_set_ios(struct udevice *dev)
 {
-	struct sunxi_mmc_plat *plat = dev_get_platdata(dev);
+	struct sunxi_mmc_plat *plat = dev_get_plat(dev);
 	struct sunxi_mmc_priv *priv = dev_get_priv(dev);
 
 	return sunxi_mmc_set_ios_common(priv, &plat->mmc);
@@ -581,7 +581,7 @@
 static int sunxi_mmc_send_cmd(struct udevice *dev, struct mmc_cmd *cmd,
 			      struct mmc_data *data)
 {
-	struct sunxi_mmc_plat *plat = dev_get_platdata(dev);
+	struct sunxi_mmc_plat *plat = dev_get_plat(dev);
 	struct sunxi_mmc_priv *priv = dev_get_priv(dev);
 
 	return sunxi_mmc_send_cmd_common(priv, &plat->mmc, cmd, data);
@@ -608,7 +608,7 @@
 static int sunxi_mmc_probe(struct udevice *dev)
 {
 	struct mmc_uclass_priv *upriv = dev_get_uclass_priv(dev);
-	struct sunxi_mmc_plat *plat = dev_get_platdata(dev);
+	struct sunxi_mmc_plat *plat = dev_get_plat(dev);
 	struct sunxi_mmc_priv *priv = dev_get_priv(dev);
 	struct reset_ctl_bulk reset_bulk;
 	struct clk gate_clk;
@@ -682,7 +682,7 @@
 
 static int sunxi_mmc_bind(struct udevice *dev)
 {
-	struct sunxi_mmc_plat *plat = dev_get_platdata(dev);
+	struct sunxi_mmc_plat *plat = dev_get_plat(dev);
 
 	return mmc_bind(dev, &plat->mmc, &plat->cfg);
 }
diff --git a/drivers/mmc/tangier_sdhci.c b/drivers/mmc/tangier_sdhci.c
index 1a2a0ff..1156427 100644
--- a/drivers/mmc/tangier_sdhci.c
+++ b/drivers/mmc/tangier_sdhci.c
@@ -22,7 +22,7 @@
 
 static int sdhci_tangier_bind(struct udevice *dev)
 {
-	struct sdhci_tangier_plat *plat = dev_get_platdata(dev);
+	struct sdhci_tangier_plat *plat = dev_get_plat(dev);
 
 	return sdhci_bind(dev, &plat->mmc, &plat->cfg);
 }
@@ -30,7 +30,7 @@
 static int sdhci_tangier_probe(struct udevice *dev)
 {
 	struct mmc_uclass_priv *upriv = dev_get_uclass_priv(dev);
-	struct sdhci_tangier_plat *plat = dev_get_platdata(dev);
+	struct sdhci_tangier_plat *plat = dev_get_plat(dev);
 	struct sdhci_host *host = dev_get_priv(dev);
 	fdt_addr_t base;
 	int ret;
diff --git a/drivers/mmc/tegra_mmc.c b/drivers/mmc/tegra_mmc.c
index 8a32156..760eca4 100644
--- a/drivers/mmc/tegra_mmc.c
+++ b/drivers/mmc/tegra_mmc.c
@@ -680,7 +680,7 @@
 static int tegra_mmc_probe(struct udevice *dev)
 {
 	struct mmc_uclass_priv *upriv = dev_get_uclass_priv(dev);
-	struct tegra_mmc_plat *plat = dev_get_platdata(dev);
+	struct tegra_mmc_plat *plat = dev_get_plat(dev);
 	struct tegra_mmc_priv *priv = dev_get_priv(dev);
 	struct mmc_config *cfg = &plat->cfg;
 	int bus_width, ret;
@@ -749,7 +749,7 @@
 
 static int tegra_mmc_bind(struct udevice *dev)
 {
-	struct tegra_mmc_plat *plat = dev_get_platdata(dev);
+	struct tegra_mmc_plat *plat = dev_get_plat(dev);
 
 	return mmc_bind(dev, &plat->mmc, &plat->cfg);
 }
diff --git a/drivers/mmc/tmio-common.c b/drivers/mmc/tmio-common.c
index c653973..2c52868 100644
--- a/drivers/mmc/tmio-common.c
+++ b/drivers/mmc/tmio-common.c
@@ -708,14 +708,14 @@
 
 int tmio_sd_bind(struct udevice *dev)
 {
-	struct tmio_sd_plat *plat = dev_get_platdata(dev);
+	struct tmio_sd_plat *plat = dev_get_plat(dev);
 
 	return mmc_bind(dev, &plat->mmc, &plat->cfg);
 }
 
 int tmio_sd_probe(struct udevice *dev, u32 quirks)
 {
-	struct tmio_sd_plat *plat = dev_get_platdata(dev);
+	struct tmio_sd_plat *plat = dev_get_plat(dev);
 	struct tmio_sd_priv *priv = dev_get_priv(dev);
 	struct mmc_uclass_priv *upriv = dev_get_uclass_priv(dev);
 	fdt_addr_t base;
diff --git a/drivers/mmc/xenon_sdhci.c b/drivers/mmc/xenon_sdhci.c
index 9925513..5062397 100644
--- a/drivers/mmc/xenon_sdhci.c
+++ b/drivers/mmc/xenon_sdhci.c
@@ -442,7 +442,7 @@
 
 static int xenon_sdhci_probe(struct udevice *dev)
 {
-	struct xenon_sdhci_plat *plat = dev_get_platdata(dev);
+	struct xenon_sdhci_plat *plat = dev_get_plat(dev);
 	struct mmc_uclass_priv *upriv = dev_get_uclass_priv(dev);
 	struct xenon_sdhci_priv *priv = dev_get_priv(dev);
 	struct sdhci_host *host = dev_get_priv(dev);
@@ -545,7 +545,7 @@
 
 static int xenon_sdhci_bind(struct udevice *dev)
 {
-	struct xenon_sdhci_plat *plat = dev_get_platdata(dev);
+	struct xenon_sdhci_plat *plat = dev_get_plat(dev);
 
 	return sdhci_bind(dev, &plat->mmc, &plat->cfg);
 }
diff --git a/drivers/mmc/zynq_sdhci.c b/drivers/mmc/zynq_sdhci.c
index 919e5d7..29850a4 100644
--- a/drivers/mmc/zynq_sdhci.c
+++ b/drivers/mmc/zynq_sdhci.c
@@ -552,7 +552,7 @@
 
 static int arasan_sdhci_probe(struct udevice *dev)
 {
-	struct arasan_sdhci_plat *plat = dev_get_platdata(dev);
+	struct arasan_sdhci_plat *plat = dev_get_plat(dev);
 	struct mmc_uclass_priv *upriv = dev_get_uclass_priv(dev);
 	struct arasan_sdhci_priv *priv = dev_get_priv(dev);
 	struct sdhci_host *host;
@@ -641,7 +641,7 @@
 
 static int arasan_sdhci_bind(struct udevice *dev)
 {
-	struct arasan_sdhci_plat *plat = dev_get_platdata(dev);
+	struct arasan_sdhci_plat *plat = dev_get_plat(dev);
 
 	return sdhci_bind(dev, &plat->mmc, &plat->cfg);
 }
diff --git a/drivers/mtd/altera_qspi.c b/drivers/mtd/altera_qspi.c
index 82d4117..9a3a21f 100644
--- a/drivers/mtd/altera_qspi.c
+++ b/drivers/mtd/altera_qspi.c
@@ -106,7 +106,7 @@
 {
 	struct mtd_info *mtd = info->mtd;
 	struct udevice *dev = mtd->dev;
-	struct altera_qspi_platdata *pdata = dev_get_platdata(dev);
+	struct altera_qspi_platdata *pdata = dev_get_plat(dev);
 	ulong base = (ulong)pdata->base;
 	loff_t to = addr - base;
 	size_t retlen;
@@ -135,7 +135,7 @@
 static int altera_qspi_erase(struct mtd_info *mtd, struct erase_info *instr)
 {
 	struct udevice *dev = mtd->dev;
-	struct altera_qspi_platdata *pdata = dev_get_platdata(dev);
+	struct altera_qspi_platdata *pdata = dev_get_plat(dev);
 	struct altera_qspi_regs *regs = pdata->regs;
 	size_t addr = instr->addr;
 	size_t len = instr->len;
@@ -197,7 +197,7 @@
 			    size_t *retlen, u_char *buf)
 {
 	struct udevice *dev = mtd->dev;
-	struct altera_qspi_platdata *pdata = dev_get_platdata(dev);
+	struct altera_qspi_platdata *pdata = dev_get_plat(dev);
 
 	memcpy_fromio(buf, pdata->base + from, len);
 	*retlen = len;
@@ -209,7 +209,7 @@
 			     size_t *retlen, const u_char *buf)
 {
 	struct udevice *dev = mtd->dev;
-	struct altera_qspi_platdata *pdata = dev_get_platdata(dev);
+	struct altera_qspi_platdata *pdata = dev_get_plat(dev);
 	struct altera_qspi_regs *regs = pdata->regs;
 	u32 stat;
 
@@ -235,7 +235,7 @@
 					 uint64_t *len)
 {
 	struct udevice *dev = mtd->dev;
-	struct altera_qspi_platdata *pdata = dev_get_platdata(dev);
+	struct altera_qspi_platdata *pdata = dev_get_plat(dev);
 	struct altera_qspi_regs *regs = pdata->regs;
 	int shift0 = ffs(QUADSPI_SR_BP2_0) - 1;
 	int shift3 = ffs(QUADSPI_SR_BP3) - 1 - 3;
@@ -257,7 +257,7 @@
 static int altera_qspi_lock(struct mtd_info *mtd, loff_t ofs, uint64_t len)
 {
 	struct udevice *dev = mtd->dev;
-	struct altera_qspi_platdata *pdata = dev_get_platdata(dev);
+	struct altera_qspi_platdata *pdata = dev_get_plat(dev);
 	struct altera_qspi_regs *regs = pdata->regs;
 	u32 sector_start, sector_end;
 	u32 num_sectors;
@@ -291,7 +291,7 @@
 static int altera_qspi_unlock(struct mtd_info *mtd, loff_t ofs, uint64_t len)
 {
 	struct udevice *dev = mtd->dev;
-	struct altera_qspi_platdata *pdata = dev_get_platdata(dev);
+	struct altera_qspi_platdata *pdata = dev_get_plat(dev);
 	struct altera_qspi_regs *regs = pdata->regs;
 	u32 mem_op;
 
@@ -304,7 +304,7 @@
 
 static int altera_qspi_probe(struct udevice *dev)
 {
-	struct altera_qspi_platdata *pdata = dev_get_platdata(dev);
+	struct altera_qspi_platdata *pdata = dev_get_plat(dev);
 	struct altera_qspi_regs *regs = pdata->regs;
 	unsigned long base = (unsigned long)pdata->base;
 	struct mtd_info *mtd;
@@ -348,7 +348,7 @@
 
 static int altera_qspi_ofdata_to_platdata(struct udevice *dev)
 {
-	struct altera_qspi_platdata *pdata = dev_get_platdata(dev);
+	struct altera_qspi_platdata *pdata = dev_get_plat(dev);
 	void *blob = (void *)gd->fdt_blob;
 	int node = dev_of_offset(dev);
 	const char *list, *end;
diff --git a/drivers/mtd/spi/sandbox.c b/drivers/mtd/spi/sandbox.c
index 26d0dbc..b3a0de6 100644
--- a/drivers/mtd/spi/sandbox.c
+++ b/drivers/mtd/spi/sandbox.c
@@ -122,7 +122,7 @@
 	struct sandbox_spi_flash *sbsf = dev_get_priv(dev);
 	size_t len, idname_len;
 	const struct flash_info *data;
-	struct sandbox_spi_flash_plat_data *pdata = dev_get_platdata(dev);
+	struct sandbox_spi_flash_plat_data *pdata = dev_get_plat(dev);
 	struct sandbox_state *state = state_get_current();
 	struct dm_spi_slave_platdata *slave_plat;
 	struct udevice *bus = dev->parent;
@@ -500,7 +500,7 @@
 
 int sandbox_sf_ofdata_to_platdata(struct udevice *dev)
 {
-	struct sandbox_spi_flash_plat_data *pdata = dev_get_platdata(dev);
+	struct sandbox_spi_flash_plat_data *pdata = dev_get_plat(dev);
 
 	pdata->filename = dev_read_string(dev, "sandbox,filename");
 	pdata->device_name = dev_read_string(dev, "compatible");
diff --git a/drivers/net/ag7xxx.c b/drivers/net/ag7xxx.c
index adcc207..5176efa 100644
--- a/drivers/net/ag7xxx.c
+++ b/drivers/net/ag7xxx.c
@@ -588,7 +588,7 @@
  */
 static int ag7xxx_eth_write_hwaddr(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct ar7xxx_eth_priv *priv = dev_get_priv(dev);
 	unsigned char *mac = pdata->enetaddr;
 	u32 macid_lo, macid_hi;
@@ -1197,7 +1197,7 @@
 
 static int ag7xxx_eth_probe(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct ar7xxx_eth_priv *priv = dev_get_priv(dev);
 	void __iomem *iobase, *phyiobase;
 	int ret, phyreg;
@@ -1252,7 +1252,7 @@
 
 static int ag7xxx_eth_ofdata_to_platdata(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	const char *phy_mode;
 	int ret;
 
diff --git a/drivers/net/altera_tse.c b/drivers/net/altera_tse.c
index becc6a6..b7ed694 100644
--- a/drivers/net/altera_tse.c
+++ b/drivers/net/altera_tse.c
@@ -453,7 +453,7 @@
 {
 	struct altera_tse_priv *priv = dev_get_priv(dev);
 	struct alt_tse_mac *mac_dev = priv->mac_dev;
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	u8 *hwaddr = pdata->enetaddr;
 	u32 mac_lo, mac_hi;
 
@@ -575,7 +575,7 @@
 
 static int altera_tse_probe(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct altera_tse_priv *priv = dev_get_priv(dev);
 	void *blob = (void *)gd->fdt_blob;
 	int node = dev_of_offset(dev);
@@ -674,7 +674,7 @@
 
 static int altera_tse_ofdata_to_platdata(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	const char *phy_mode;
 
 	pdata->phy_interface = -1;
diff --git a/drivers/net/bcm6348-eth.c b/drivers/net/bcm6348-eth.c
index 7c79e9a..aad7b61 100644
--- a/drivers/net/bcm6348-eth.c
+++ b/drivers/net/bcm6348-eth.c
@@ -264,7 +264,7 @@
 
 static int bcm6348_eth_write_hwaddr(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct bcm6348_eth_priv *priv = dev_get_priv(dev);
 	bool running = false;
 
@@ -380,7 +380,7 @@
 
 static int bcm6348_phy_init(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct bcm6348_eth_priv *priv = dev_get_priv(dev);
 	struct mii_dev *bus;
 
@@ -412,7 +412,7 @@
 
 static int bcm6348_eth_probe(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct bcm6348_eth_priv *priv = dev_get_priv(dev);
 	struct ofnode_phandle_args phy;
 	const char *phy_mode;
diff --git a/drivers/net/bcm6368-eth.c b/drivers/net/bcm6368-eth.c
index 6e6548a..29abe7f 100644
--- a/drivers/net/bcm6368-eth.c
+++ b/drivers/net/bcm6368-eth.c
@@ -506,7 +506,7 @@
 
 static int bcm6368_eth_probe(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct bcm6368_eth_priv *priv = dev_get_priv(dev);
 	int num_ports, ret, i;
 	ofnode node;
diff --git a/drivers/net/bcmgenet.c b/drivers/net/bcmgenet.c
index 9fcb28a..1627e93 100644
--- a/drivers/net/bcmgenet.c
+++ b/drivers/net/bcmgenet.c
@@ -236,7 +236,7 @@
 static int bcmgenet_gmac_write_hwaddr(struct udevice *dev)
 {
 	struct bcmgenet_eth_priv *priv = dev_get_priv(dev);
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	uchar *addr = pdata->enetaddr;
 	u32 reg;
 
@@ -619,7 +619,7 @@
 
 static int bcmgenet_eth_probe(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct bcmgenet_eth_priv *priv = dev_get_priv(dev);
 	ofnode mdio_node;
 	const char *name;
@@ -687,7 +687,7 @@
 
 static int bcmgenet_eth_ofdata_to_platdata(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct bcmgenet_eth_priv *priv = dev_get_priv(dev);
 	struct ofnode_phandle_args phy_node;
 	const char *phy_mode;
diff --git a/drivers/net/dc2114x.c b/drivers/net/dc2114x.c
index 66d1618..deedfe7 100644
--- a/drivers/net/dc2114x.c
+++ b/drivers/net/dc2114x.c
@@ -625,7 +625,7 @@
 #else	/* DM_ETH */
 static int dc2114x_start(struct udevice *dev)
 {
-	struct eth_pdata *plat = dev_get_platdata(dev);
+	struct eth_pdata *plat = dev_get_plat(dev);
 	struct dc2114x_priv *priv = dev_get_priv(dev);
 
 	memcpy(priv->enetaddr, plat->enetaddr, sizeof(plat->enetaddr));
@@ -709,7 +709,7 @@
 
 static int dc2114x_probe(struct udevice *dev)
 {
-	struct eth_pdata *plat = dev_get_platdata(dev);
+	struct eth_pdata *plat = dev_get_plat(dev);
 	struct dc2114x_priv *priv = dev_get_priv(dev);
 	u16 command, status;
 	u32 iobase;
diff --git a/drivers/net/designware.c b/drivers/net/designware.c
index 83b31fa..c0e5c0b 100644
--- a/drivers/net/designware.c
+++ b/drivers/net/designware.c
@@ -93,7 +93,7 @@
 {
 	struct udevice *dev = bus->priv;
 	struct dw_eth_dev *priv = dev_get_priv(dev);
-	struct dw_eth_pdata *pdata = dev_get_platdata(dev);
+	struct dw_eth_pdata *pdata = dev_get_plat(dev);
 	int ret;
 
 	if (!dm_gpio_is_valid(&priv->reset_gpio))
@@ -610,7 +610,7 @@
 #ifdef CONFIG_DM_ETH
 static int designware_eth_start(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct dw_eth_dev *priv = dev_get_priv(dev);
 	int ret;
 
@@ -654,7 +654,7 @@
 
 int designware_eth_write_hwaddr(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct dw_eth_dev *priv = dev_get_priv(dev);
 
 	return _dw_write_hwaddr(priv, pdata->enetaddr);
@@ -678,7 +678,7 @@
 
 int designware_eth_probe(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct dw_eth_dev *priv = dev_get_priv(dev);
 	u32 iobase = pdata->iobase;
 	ulong ioaddr;
@@ -813,7 +813,7 @@
 
 int designware_eth_ofdata_to_platdata(struct udevice *dev)
 {
-	struct dw_eth_pdata *dw_pdata = dev_get_platdata(dev);
+	struct dw_eth_pdata *dw_pdata = dev_get_plat(dev);
 #if CONFIG_IS_ENABLED(DM_GPIO)
 	struct dw_eth_dev *priv = dev_get_priv(dev);
 #endif
diff --git a/drivers/net/dwc_eth_qos.c b/drivers/net/dwc_eth_qos.c
index 018cbfd..1569c5b 100644
--- a/drivers/net/dwc_eth_qos.c
+++ b/drivers/net/dwc_eth_qos.c
@@ -1108,7 +1108,7 @@
 
 static int eqos_write_hwaddr(struct udevice *dev)
 {
-	struct eth_pdata *plat = dev_get_platdata(dev);
+	struct eth_pdata *plat = dev_get_plat(dev);
 	struct eqos_priv *eqos = dev_get_priv(dev);
 	uint32_t val;
 
@@ -1152,7 +1152,7 @@
 
 static int eqos_read_rom_hwaddr(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 
 #ifdef CONFIG_ARCH_IMX8M
 	imx_get_mac_from_fuse(dev->req_seq, pdata->enetaddr);
diff --git a/drivers/net/dwmac_socfpga.c b/drivers/net/dwmac_socfpga.c
index ebbbcac..a3cd4d5 100644
--- a/drivers/net/dwmac_socfpga.c
+++ b/drivers/net/dwmac_socfpga.c
@@ -27,7 +27,7 @@
 
 static int dwmac_socfpga_ofdata_to_platdata(struct udevice *dev)
 {
-	struct dwmac_socfpga_platdata *pdata = dev_get_platdata(dev);
+	struct dwmac_socfpga_platdata *pdata = dev_get_plat(dev);
 	struct regmap *regmap;
 	struct ofnode_phandle_args args;
 	void *range;
@@ -66,7 +66,7 @@
 
 static int dwmac_socfpga_probe(struct udevice *dev)
 {
-	struct dwmac_socfpga_platdata *pdata = dev_get_platdata(dev);
+	struct dwmac_socfpga_platdata *pdata = dev_get_plat(dev);
 	struct eth_pdata *edata = &pdata->dw_eth_pdata.eth_pdata;
 	struct reset_ctl_bulk reset_bulk;
 	int ret;
diff --git a/drivers/net/e1000.c b/drivers/net/e1000.c
index 49e6be3..3b3dd10 100644
--- a/drivers/net/e1000.c
+++ b/drivers/net/e1000.c
@@ -5795,7 +5795,7 @@
 	e1000_name(name, cardnum);
 	ret = uclass_get_device_by_name(UCLASS_ETH, name, &dev);
 	if (!ret) {
-		plat = dev_get_platdata(dev);
+		plat = dev_get_plat(dev);
 		mac = plat->enetaddr;
 	}
 #else
@@ -5844,7 +5844,7 @@
 #ifdef CONFIG_DM_ETH
 static int e1000_eth_start(struct udevice *dev)
 {
-	struct eth_pdata *plat = dev_get_platdata(dev);
+	struct eth_pdata *plat = dev_get_plat(dev);
 	struct e1000_hw *hw = dev_get_priv(dev);
 
 	return _e1000_init(hw, plat->enetaddr);
@@ -5890,7 +5890,7 @@
 
 static int e1000_eth_probe(struct udevice *dev)
 {
-	struct eth_pdata *plat = dev_get_platdata(dev);
+	struct eth_pdata *plat = dev_get_plat(dev);
 	struct e1000_hw *hw = dev_get_priv(dev);
 	int ret;
 
diff --git a/drivers/net/eepro100.c b/drivers/net/eepro100.c
index f47caf1..934b881 100644
--- a/drivers/net/eepro100.c
+++ b/drivers/net/eepro100.c
@@ -900,7 +900,7 @@
 #else	/* DM_ETH */
 static int eepro100_start(struct udevice *dev)
 {
-	struct eth_pdata *plat = dev_get_platdata(dev);
+	struct eth_pdata *plat = dev_get_plat(dev);
 	struct eepro100_priv *priv = dev_get_priv(dev);
 
 	memcpy(priv->enetaddr, plat->enetaddr, sizeof(plat->enetaddr));
@@ -962,7 +962,7 @@
 
 static int eepro100_probe(struct udevice *dev)
 {
-	struct eth_pdata *plat = dev_get_platdata(dev);
+	struct eth_pdata *plat = dev_get_plat(dev);
 	struct eepro100_priv *priv = dev_get_priv(dev);
 	u16 command, status;
 	u32 iobase;
diff --git a/drivers/net/ethoc.c b/drivers/net/ethoc.c
index 640db11..53c2d23 100644
--- a/drivers/net/ethoc.c
+++ b/drivers/net/ethoc.c
@@ -647,7 +647,7 @@
 
 static int ethoc_write_hwaddr(struct udevice *dev)
 {
-	struct ethoc_eth_pdata *pdata = dev_get_platdata(dev);
+	struct ethoc_eth_pdata *pdata = dev_get_plat(dev);
 	struct ethoc *priv = dev_get_priv(dev);
 	u8 *mac = pdata->eth_pdata.enetaddr;
 
@@ -687,7 +687,7 @@
 
 static int ethoc_ofdata_to_platdata(struct udevice *dev)
 {
-	struct ethoc_eth_pdata *pdata = dev_get_platdata(dev);
+	struct ethoc_eth_pdata *pdata = dev_get_plat(dev);
 	fdt_addr_t addr;
 
 	pdata->eth_pdata.iobase = dev_read_addr(dev);
@@ -699,7 +699,7 @@
 
 static int ethoc_probe(struct udevice *dev)
 {
-	struct ethoc_eth_pdata *pdata = dev_get_platdata(dev);
+	struct ethoc_eth_pdata *pdata = dev_get_plat(dev);
 	struct ethoc *priv = dev_get_priv(dev);
 
 	priv->iobase = ioremap(pdata->eth_pdata.iobase, ETHOC_IOSIZE);
diff --git a/drivers/net/fec_mxc.c b/drivers/net/fec_mxc.c
index e3d6c8e..88ee176 100644
--- a/drivers/net/fec_mxc.c
+++ b/drivers/net/fec_mxc.c
@@ -415,7 +415,7 @@
 {
 #ifdef CONFIG_DM_ETH
 	struct fec_priv *fec = dev_get_priv(dev);
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	uchar *mac = pdata->enetaddr;
 #else
 	uchar *mac = dev->enetaddr;
@@ -1272,7 +1272,7 @@
 static int fecmxc_read_rom_hwaddr(struct udevice *dev)
 {
 	struct fec_priv *priv = dev_get_priv(dev);
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 
 	return fec_get_hwaddr(priv->dev_id, pdata->enetaddr);
 }
@@ -1351,7 +1351,7 @@
 
 static int fecmxc_probe(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct fec_priv *priv = dev_get_priv(dev);
 	struct mii_dev *bus = NULL;
 	uint32_t start;
@@ -1530,7 +1530,7 @@
 static int fecmxc_ofdata_to_platdata(struct udevice *dev)
 {
 	int ret = 0;
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct fec_priv *priv = dev_get_priv(dev);
 	const char *phy_mode;
 
diff --git a/drivers/net/fm/eth.c b/drivers/net/fm/eth.c
index f5fb513..02ccf1e 100644
--- a/drivers/net/fm/eth.c
+++ b/drivers/net/fm/eth.c
@@ -472,7 +472,7 @@
 #ifndef CONFIG_DM_ETH
 	struct fm_eth *fm_eth = dev->priv;
 #else
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct fm_eth *fm_eth = dev_get_priv(dev);
 #endif
 	unsigned char *enetaddr;
diff --git a/drivers/net/fsl-mc/mc.c b/drivers/net/fsl-mc/mc.c
index 84db6be..4b0c0ed 100644
--- a/drivers/net/fsl-mc/mc.c
+++ b/drivers/net/fsl-mc/mc.c
@@ -185,7 +185,7 @@
 			     enum mc_fixup_type type)
 {
 #ifdef CONFIG_DM_ETH
-	struct eth_pdata *plat = dev_get_platdata(eth_dev);
+	struct eth_pdata *plat = dev_get_plat(eth_dev);
 	unsigned char *enetaddr = plat->enetaddr;
 	int eth_index = eth_dev->seq;
 #else
diff --git a/drivers/net/fsl_enetc.c b/drivers/net/fsl_enetc.c
index e988fb0..765385c 100644
--- a/drivers/net/fsl_enetc.c
+++ b/drivers/net/fsl_enetc.c
@@ -68,7 +68,7 @@
 		    strcmp(dev->driver->name, ENETC_DRIVER_NAME))
 			continue;
 
-		pdata = dev_get_platdata(dev);
+		pdata = dev_get_plat(dev);
 		ppdata = dev_get_parent_plat(dev);
 		devfn = PCI_FUNC(ppdata->devfn);
 
@@ -367,7 +367,7 @@
 {
 	struct pci_child_platdata *ppdata = dev_get_parent_plat(dev);
 	const int devfn_to_pf[] = {0, 1, 2, -1, -1, -1, 3};
-	struct eth_pdata *plat = dev_get_platdata(dev);
+	struct eth_pdata *plat = dev_get_plat(dev);
 	int devfn = PCI_FUNC(ppdata->devfn);
 	u8 *addr = plat->enetaddr;
 	u32 lower, upper;
@@ -391,7 +391,7 @@
 
 static int enetc_write_hwaddr(struct udevice *dev)
 {
-	struct eth_pdata *plat = dev_get_platdata(dev);
+	struct eth_pdata *plat = dev_get_plat(dev);
 	struct enetc_priv *priv = dev_get_priv(dev);
 	u8 *addr = plat->enetaddr;
 
diff --git a/drivers/net/fsl_mcdmafec.c b/drivers/net/fsl_mcdmafec.c
index 6ab27e2..b5610d3 100644
--- a/drivers/net/fsl_mcdmafec.c
+++ b/drivers/net/fsl_mcdmafec.c
@@ -497,7 +497,7 @@
 static int mcdmafec_probe(struct udevice *dev)
 {
 	struct fec_info_dma *info = dev->priv;
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	int node = dev_of_offset(dev);
 	int retval;
 	const u32 *val;
@@ -567,7 +567,7 @@
  */
 static int mcdmafec_ofdata_to_platdata(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	const u32 *val;
 
 	pdata->iobase = dev_read_addr(dev);
diff --git a/drivers/net/ftgmac100.c b/drivers/net/ftgmac100.c
index dd696f3..b462410 100644
--- a/drivers/net/ftgmac100.c
+++ b/drivers/net/ftgmac100.c
@@ -287,7 +287,7 @@
 
 static int ftgmac100_start(struct udevice *dev)
 {
-	struct eth_pdata *plat = dev_get_platdata(dev);
+	struct eth_pdata *plat = dev_get_plat(dev);
 	struct ftgmac100_data *priv = dev_get_priv(dev);
 	struct ftgmac100 *ftgmac100 = priv->iobase;
 	struct phy_device *phydev = priv->phydev;
@@ -505,7 +505,7 @@
 
 static int ftgmac100_write_hwaddr(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct ftgmac100_data *priv = dev_get_priv(dev);
 
 	return ftgmac100_set_mac(priv, pdata->enetaddr);
@@ -513,7 +513,7 @@
 
 static int ftgmac100_ofdata_to_platdata(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct ftgmac100_data *priv = dev_get_priv(dev);
 	const char *phy_mode;
 
@@ -542,7 +542,7 @@
 
 static int ftgmac100_probe(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct ftgmac100_data *priv = dev_get_priv(dev);
 	int ret;
 
diff --git a/drivers/net/ftmac100.c b/drivers/net/ftmac100.c
index de7ec4d..5c2887e 100644
--- a/drivers/net/ftmac100.c
+++ b/drivers/net/ftmac100.c
@@ -318,7 +318,7 @@
 #ifdef CONFIG_DM_ETH
 static int ftmac100_start(struct udevice *dev)
 {
-	struct eth_pdata *plat = dev_get_platdata(dev);
+	struct eth_pdata *plat = dev_get_plat(dev);
 	struct ftmac100_data *priv = dev_get_priv(dev);
 
 	return _ftmac100_init(priv, plat->enetaddr);
@@ -360,7 +360,7 @@
 
 int ftmac100_read_rom_hwaddr(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	eth_env_get_enetaddr("ethaddr", pdata->enetaddr);
 	return 0;
 }
@@ -396,7 +396,7 @@
 static int ftmac100_ofdata_to_platdata(struct udevice *dev)
 {
 	struct ftmac100_data *priv = dev_get_priv(dev);
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	const char *mac;
 	pdata->iobase = dev_read_addr(dev);
 	priv->iobase = pdata->iobase;
diff --git a/drivers/net/gmac_rockchip.c b/drivers/net/gmac_rockchip.c
index 0bd1da5..2d94223 100644
--- a/drivers/net/gmac_rockchip.c
+++ b/drivers/net/gmac_rockchip.c
@@ -55,7 +55,7 @@
 
 static int gmac_rockchip_ofdata_to_platdata(struct udevice *dev)
 {
-	struct gmac_rockchip_platdata *pdata = dev_get_platdata(dev);
+	struct gmac_rockchip_platdata *pdata = dev_get_plat(dev);
 	const char *string;
 
 	string = dev_read_string(dev, "clock_in_out");
@@ -555,10 +555,10 @@
 
 static int gmac_rockchip_probe(struct udevice *dev)
 {
-	struct gmac_rockchip_platdata *pdata = dev_get_platdata(dev);
+	struct gmac_rockchip_platdata *pdata = dev_get_plat(dev);
 	struct rk_gmac_ops *ops =
 		(struct rk_gmac_ops *)dev_get_driver_data(dev);
-	struct dw_eth_pdata *dw_pdata = dev_get_platdata(dev);
+	struct dw_eth_pdata *dw_pdata = dev_get_plat(dev);
 	struct eth_pdata *eth_pdata = &dw_pdata->eth_pdata;
 	struct clk clk;
 	ulong rate;
@@ -664,7 +664,7 @@
 
 static int gmac_rockchip_eth_start(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct dw_eth_dev *priv = dev_get_priv(dev);
 	struct rk_gmac_ops *ops =
 		(struct rk_gmac_ops *)dev_get_driver_data(dev);
diff --git a/drivers/net/higmacv300.c b/drivers/net/higmacv300.c
index 208b167..1cc466f 100644
--- a/drivers/net/higmacv300.c
+++ b/drivers/net/higmacv300.c
@@ -128,7 +128,7 @@
 
 static int higmac_write_hwaddr(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct higmac_priv *priv = dev_get_priv(dev);
 	unsigned char *mac = pdata->enetaddr;
 	u32 val;
diff --git a/drivers/net/ks8851_mll.c b/drivers/net/ks8851_mll.c
index b0e6685..05ef1ab 100644
--- a/drivers/net/ks8851_mll.c
+++ b/drivers/net/ks8851_mll.c
@@ -615,7 +615,7 @@
 static int ks8851_write_hwaddr(struct udevice *dev)
 {
 	struct ks_net *ks = dev_get_priv(dev);
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 
 	ks8851_mll_write_hwaddr_common(ks, pdata->enetaddr);
 
@@ -625,7 +625,7 @@
 static int ks8851_read_rom_hwaddr(struct udevice *dev)
 {
 	struct ks_net *ks = dev_get_priv(dev);
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	u16 addrl, addrm, addrh;
 
 	/* No EEPROM means no valid MAC address. */
@@ -668,7 +668,7 @@
 static int ks8851_ofdata_to_platdata(struct udevice *dev)
 {
 	struct ks_net *ks = dev_get_priv(dev);
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 
 	pdata->iobase = dev_read_addr(dev);
 	ks->iobase = pdata->iobase;
diff --git a/drivers/net/ldpaa_eth/ldpaa_eth.c b/drivers/net/ldpaa_eth/ldpaa_eth.c
index 02935f6..cd2e4e0 100644
--- a/drivers/net/ldpaa_eth/ldpaa_eth.c
+++ b/drivers/net/ldpaa_eth/ldpaa_eth.c
@@ -511,7 +511,7 @@
 #ifdef CONFIG_DM_ETH
 static int ldpaa_eth_open(struct udevice *dev)
 {
-	struct eth_pdata *plat = dev_get_platdata(dev);
+	struct eth_pdata *plat = dev_get_plat(dev);
 	struct ldpaa_eth_priv *priv = dev_get_priv(dev);
 #else
 static int ldpaa_eth_open(struct eth_device *net_dev, struct bd_info *bd)
diff --git a/drivers/net/macb.c b/drivers/net/macb.c
index 4ad37fd..dd23591 100644
--- a/drivers/net/macb.c
+++ b/drivers/net/macb.c
@@ -1169,7 +1169,7 @@
 
 static int macb_write_hwaddr(struct udevice *dev)
 {
-	struct eth_pdata *plat = dev_get_platdata(dev);
+	struct eth_pdata *plat = dev_get_plat(dev);
 	struct macb_device *macb = dev_get_priv(dev);
 
 	return _macb_write_hwaddr(macb, plat->enetaddr);
@@ -1222,7 +1222,7 @@
 
 static int macb_eth_probe(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct macb_device *macb = dev_get_priv(dev);
 	const char *phy_mode;
 	int ret;
@@ -1295,7 +1295,7 @@
 
 static int macb_eth_ofdata_to_platdata(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 
 	pdata->iobase = (phys_addr_t)dev_remap_addr(dev);
 	if (!pdata->iobase)
diff --git a/drivers/net/mcffec.c b/drivers/net/mcffec.c
index d0c5893..ca72888 100644
--- a/drivers/net/mcffec.c
+++ b/drivers/net/mcffec.c
@@ -518,7 +518,7 @@
  */
 static int mcffec_probe(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct fec_info_s *info = dev->priv;
 	int node = dev_of_offset(dev);
 	int retval, fec_idx;
@@ -586,7 +586,7 @@
  */
 static int mcffec_ofdata_to_platdata(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	const u32 *val;
 
 	pdata->iobase = dev_read_addr(dev);
diff --git a/drivers/net/mscc_eswitch/jr2_switch.c b/drivers/net/mscc_eswitch/jr2_switch.c
index f0ea6ea..128d7f2 100644
--- a/drivers/net/mscc_eswitch/jr2_switch.c
+++ b/drivers/net/mscc_eswitch/jr2_switch.c
@@ -726,7 +726,7 @@
 static int jr2_write_hwaddr(struct udevice *dev)
 {
 	struct jr2_private *priv = dev_get_priv(dev);
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 
 	return jr2_mac_table_add(priv, pdata->enetaddr, PGID_UNICAST);
 }
@@ -755,7 +755,7 @@
 static int jr2_start(struct udevice *dev)
 {
 	struct jr2_private *priv = dev_get_priv(dev);
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	const unsigned char mac[ETH_ALEN] = {0xff, 0xff, 0xff, 0xff, 0xff,
 		0xff };
 	int ret;
diff --git a/drivers/net/mscc_eswitch/luton_switch.c b/drivers/net/mscc_eswitch/luton_switch.c
index 1dfd86a..54afa14 100644
--- a/drivers/net/mscc_eswitch/luton_switch.c
+++ b/drivers/net/mscc_eswitch/luton_switch.c
@@ -497,7 +497,7 @@
 static int luton_write_hwaddr(struct udevice *dev)
 {
 	struct luton_private *priv = dev_get_priv(dev);
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 
 	mscc_mac_table_add(priv->regs[ANA], luton_regs_ana_table,
 			   pdata->enetaddr, PGID_UNICAST);
@@ -510,7 +510,7 @@
 static int luton_start(struct udevice *dev)
 {
 	struct luton_private *priv = dev_get_priv(dev);
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	const unsigned char mac[ETH_ALEN] = { 0xff, 0xff, 0xff, 0xff, 0xff,
 					      0xff };
 	int ret;
diff --git a/drivers/net/mscc_eswitch/ocelot_switch.c b/drivers/net/mscc_eswitch/ocelot_switch.c
index 18e11ec..19e725c 100644
--- a/drivers/net/mscc_eswitch/ocelot_switch.c
+++ b/drivers/net/mscc_eswitch/ocelot_switch.c
@@ -420,7 +420,7 @@
 static int ocelot_write_hwaddr(struct udevice *dev)
 {
 	struct ocelot_private *priv = dev_get_priv(dev);
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 
 	mscc_mac_table_add(priv->regs[ANA], ocelot_regs_ana_table,
 			   pdata->enetaddr, PGID_UNICAST);
@@ -433,7 +433,7 @@
 static int ocelot_start(struct udevice *dev)
 {
 	struct ocelot_private *priv = dev_get_priv(dev);
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	const unsigned char mac[ETH_ALEN] = { 0xff, 0xff, 0xff, 0xff, 0xff,
 					      0xff };
 	int ret;
diff --git a/drivers/net/mscc_eswitch/serval_switch.c b/drivers/net/mscc_eswitch/serval_switch.c
index e274ee5..09ce334 100644
--- a/drivers/net/mscc_eswitch/serval_switch.c
+++ b/drivers/net/mscc_eswitch/serval_switch.c
@@ -373,7 +373,7 @@
 static int serval_write_hwaddr(struct udevice *dev)
 {
 	struct serval_private *priv = dev_get_priv(dev);
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 
 	mscc_mac_table_add(priv->regs[ANA], serval_regs_ana_table,
 			   pdata->enetaddr, PGID_UNICAST);
@@ -386,7 +386,7 @@
 static int serval_start(struct udevice *dev)
 {
 	struct serval_private *priv = dev_get_priv(dev);
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	const unsigned char mac[ETH_ALEN] = { 0xff, 0xff, 0xff, 0xff, 0xff,
 					      0xff };
 	int ret;
diff --git a/drivers/net/mscc_eswitch/servalt_switch.c b/drivers/net/mscc_eswitch/servalt_switch.c
index 59c0d85..4a4e9e4 100644
--- a/drivers/net/mscc_eswitch/servalt_switch.c
+++ b/drivers/net/mscc_eswitch/servalt_switch.c
@@ -323,7 +323,7 @@
 static int servalt_write_hwaddr(struct udevice *dev)
 {
 	struct servalt_private *priv = dev_get_priv(dev);
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 
 	return servalt_mac_table_add(priv, pdata->enetaddr, PGID_UNICAST);
 }
@@ -331,7 +331,7 @@
 static int servalt_start(struct udevice *dev)
 {
 	struct servalt_private *priv = dev_get_priv(dev);
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	const unsigned char mac[ETH_ALEN] = {0xff, 0xff, 0xff, 0xff, 0xff,
 		0xff };
 	int ret;
diff --git a/drivers/net/mt7628-eth.c b/drivers/net/mt7628-eth.c
index c94d3dd..50d066a 100644
--- a/drivers/net/mt7628-eth.c
+++ b/drivers/net/mt7628-eth.c
@@ -361,7 +361,7 @@
 {
 	struct mt7628_eth_dev *priv = dev_get_priv(dev);
 	void __iomem *base = priv->base;
-	u8 *addr = ((struct eth_pdata *)dev_get_platdata(dev))->enetaddr;
+	u8 *addr = ((struct eth_pdata *)dev_get_plat(dev))->enetaddr;
 	u32 val;
 
 	/* Set MAC address. */
diff --git a/drivers/net/mtk_eth.c b/drivers/net/mtk_eth.c
index 31e8547..2741439 100644
--- a/drivers/net/mtk_eth.c
+++ b/drivers/net/mtk_eth.c
@@ -1278,7 +1278,7 @@
 
 static int mtk_eth_write_hwaddr(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct mtk_eth_priv *priv = dev_get_priv(dev);
 	unsigned char *mac = pdata->enetaddr;
 	u32 macaddr_lsb, macaddr_msb;
@@ -1358,7 +1358,7 @@
 
 static int mtk_eth_probe(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct mtk_eth_priv *priv = dev_get_priv(dev);
 	ulong iobase = pdata->iobase;
 	int ret;
@@ -1409,7 +1409,7 @@
 
 static int mtk_eth_ofdata_to_platdata(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct mtk_eth_priv *priv = dev_get_priv(dev);
 	struct ofnode_phandle_args args;
 	struct regmap *regmap;
diff --git a/drivers/net/mvgbe.c b/drivers/net/mvgbe.c
index 0e4e88e..bf800a8 100644
--- a/drivers/net/mvgbe.c
+++ b/drivers/net/mvgbe.c
@@ -554,7 +554,7 @@
 #ifdef CONFIG_DM_ETH
 static int mvgbe_write_hwaddr(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 
 	port_uc_addr_set(dev_get_priv(dev), pdata->enetaddr);
 
@@ -906,7 +906,7 @@
 
 static int mvgbe_start(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct mvgbe_device *dmvgbe = dev_get_priv(dev);
 	int ret;
 
@@ -948,7 +948,7 @@
 
 static int mvgbe_probe(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct mvgbe_device *dmvgbe = dev_get_priv(dev);
 	struct mii_dev *bus;
 	int ret;
@@ -988,7 +988,7 @@
 
 static int mvgbe_ofdata_to_platdata(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct mvgbe_device *dmvgbe = dev_get_priv(dev);
 	void *blob = (void *)gd->fdt_blob;
 	int node = dev_of_offset(dev);
diff --git a/drivers/net/mvneta.c b/drivers/net/mvneta.c
index 4c478b9..84426ef 100644
--- a/drivers/net/mvneta.c
+++ b/drivers/net/mvneta.c
@@ -896,7 +896,7 @@
 static int mvneta_write_hwaddr(struct udevice *dev)
 {
 	mvneta_mac_addr_set(dev_get_priv(dev),
-		((struct eth_pdata *)dev_get_platdata(dev))->enetaddr,
+		((struct eth_pdata *)dev_get_plat(dev))->enetaddr,
 		rxq_def);
 
 	return 0;
@@ -1397,7 +1397,7 @@
 /* Device initialization routine */
 static int mvneta_init(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct mvneta_port *pp = dev_get_priv(dev);
 	int err;
 
@@ -1690,7 +1690,7 @@
 
 static int mvneta_probe(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct mvneta_port *pp = dev_get_priv(dev);
 	void *blob = (void *)gd->fdt_blob;
 	int node = dev_of_offset(dev);
@@ -1797,7 +1797,7 @@
 
 static int mvneta_ofdata_to_platdata(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	const char *phy_mode;
 
 	pdata->iobase = dev_read_addr(dev);
diff --git a/drivers/net/mvpp2.c b/drivers/net/mvpp2.c
index 326f91c..d266e6d 100644
--- a/drivers/net/mvpp2.c
+++ b/drivers/net/mvpp2.c
@@ -5186,7 +5186,7 @@
 
 static int mvpp2_start(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct mvpp2_port *port = dev_get_priv(dev);
 
 	/* Load current MAC address */
diff --git a/drivers/net/octeontx/nicvf_main.c b/drivers/net/octeontx/nicvf_main.c
index 3b5ba26..750629a 100644
--- a/drivers/net/octeontx/nicvf_main.c
+++ b/drivers/net/octeontx/nicvf_main.c
@@ -105,7 +105,7 @@
 static void  nicvf_handle_mbx_intr(struct nicvf *nic)
 {
 	union nic_mbx mbx = {};
-	struct eth_pdata *pdata = dev_get_platdata(nic->dev);
+	struct eth_pdata *pdata = dev_get_plat(nic->dev);
 	u64 *mbx_data;
 	u64 mbx_addr;
 	int i;
@@ -165,7 +165,7 @@
 static int nicvf_hw_set_mac_addr(struct nicvf *nic, struct udevice *dev)
 {
 	union nic_mbx mbx = {};
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 
 	mbx.mac.msg = NIC_MBOX_MSG_SET_MAC;
 	mbx.mac.vf_id = nic->vf_id;
@@ -445,7 +445,7 @@
 int nicvf_write_hwaddr(struct udevice *dev)
 {
 	unsigned char ethaddr[ARP_HLEN];
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct nicvf *nic = dev_get_priv(dev);
 
 	/* If lower level firmware fails to set proper MAC
@@ -484,7 +484,7 @@
 int nicvf_initialize(struct udevice *dev)
 {
 	struct nicvf *nicvf = dev_get_priv(dev);
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	int    ret = 0, bgx, lmac;
 	char   name[16];
 	unsigned char ethaddr[ARP_HLEN];
diff --git a/drivers/net/octeontx2/nix.c b/drivers/net/octeontx2/nix.c
index 0a3e8e4..9649b39 100644
--- a/drivers/net/octeontx2/nix.c
+++ b/drivers/net/octeontx2/nix.c
@@ -727,7 +727,7 @@
 {
 	struct rvu_pf *rvu = dev_get_priv(dev);
 	struct nix *nix = rvu->nix;
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 
 	/* If lower level firmware fails to set proper MAC
 	 * u-boot framework updates MAC to random address.
diff --git a/drivers/net/octeontx2/rvu_pf.c b/drivers/net/octeontx2/rvu_pf.c
index 246fca2..d74a196 100644
--- a/drivers/net/octeontx2/rvu_pf.c
+++ b/drivers/net/octeontx2/rvu_pf.c
@@ -20,7 +20,7 @@
 int rvu_pf_init(struct rvu_pf *rvu)
 {
 	struct nix *nix;
-	struct eth_pdata *pdata = dev_get_platdata(rvu->dev);
+	struct eth_pdata *pdata = dev_get_plat(rvu->dev);
 
 	debug("%s: Allocating nix lf\n", __func__);
 	nix = nix_lf_alloc(rvu->dev);
diff --git a/drivers/net/pch_gbe.c b/drivers/net/pch_gbe.c
index 3829ccc..fabcf85 100644
--- a/drivers/net/pch_gbe.c
+++ b/drivers/net/pch_gbe.c
@@ -68,7 +68,7 @@
 static int pch_gbe_reset(struct udevice *dev)
 {
 	struct pch_gbe_priv *priv = dev_get_priv(dev);
-	struct eth_pdata *plat = dev_get_platdata(dev);
+	struct eth_pdata *plat = dev_get_plat(dev);
 	struct pch_gbe_regs *mac_regs = priv->mac_regs;
 	ulong start;
 
@@ -412,7 +412,7 @@
 static int pch_gbe_phy_init(struct udevice *dev)
 {
 	struct pch_gbe_priv *priv = dev_get_priv(dev);
-	struct eth_pdata *plat = dev_get_platdata(dev);
+	struct eth_pdata *plat = dev_get_plat(dev);
 	struct phy_device *phydev;
 	int mask = 0xffffffff;
 
@@ -436,7 +436,7 @@
 static int pch_gbe_probe(struct udevice *dev)
 {
 	struct pch_gbe_priv *priv;
-	struct eth_pdata *plat = dev_get_platdata(dev);
+	struct eth_pdata *plat = dev_get_plat(dev);
 	void *iobase;
 	int err;
 
diff --git a/drivers/net/pcnet.c b/drivers/net/pcnet.c
index ff9506f..59ef104 100644
--- a/drivers/net/pcnet.c
+++ b/drivers/net/pcnet.c
@@ -585,7 +585,7 @@
 #else /* DM_ETH */
 static int pcnet_start(struct udevice *dev)
 {
-	struct eth_pdata *plat = dev_get_platdata(dev);
+	struct eth_pdata *plat = dev_get_plat(dev);
 	struct pcnet_priv *priv = dev_get_priv(dev);
 
 	memcpy(priv->enetaddr, plat->enetaddr, sizeof(plat->enetaddr));
@@ -638,7 +638,7 @@
 
 static int pcnet_probe(struct udevice *dev)
 {
-	struct eth_pdata *plat = dev_get_platdata(dev);
+	struct eth_pdata *plat = dev_get_plat(dev);
 	struct pcnet_priv *lp = dev_get_priv(dev);
 	u16 command, status;
 	u32 iobase;
diff --git a/drivers/net/pfe_eth/pfe_eth.c b/drivers/net/pfe_eth/pfe_eth.c
index 53a08df..3d14571 100644
--- a/drivers/net/pfe_eth/pfe_eth.c
+++ b/drivers/net/pfe_eth/pfe_eth.c
@@ -87,7 +87,7 @@
 {
 	struct pfe_eth_dev *priv = dev_get_priv(dev);
 	struct gemac_s *gem = priv->gem;
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	uchar *mac = pdata->enetaddr;
 
 	writel((mac[0] << 24) + (mac[1] << 16) + (mac[2] << 8) + mac[3],
@@ -215,7 +215,7 @@
 {
 	struct pfe_eth_dev *priv = dev_get_priv(dev);
 	struct pfe_ddr_address pfe_addr;
-	struct pfe_eth_pdata *pdata = dev_get_platdata(dev);
+	struct pfe_eth_pdata *pdata = dev_get_plat(dev);
 	int ret = 0;
 	static int init_done;
 
@@ -266,7 +266,7 @@
 
 static int pfe_eth_bind(struct udevice *dev)
 {
-	struct pfe_eth_pdata *pdata = dev_get_platdata(dev);
+	struct pfe_eth_pdata *pdata = dev_get_plat(dev);
 	char name[20];
 
 	sprintf(name, "pfe_eth%u", pdata->pfe_eth_pdata_mac.phy_interface);
diff --git a/drivers/net/pic32_eth.c b/drivers/net/pic32_eth.c
index 94c296e..9eba55a 100644
--- a/drivers/net/pic32_eth.c
+++ b/drivers/net/pic32_eth.c
@@ -326,7 +326,7 @@
 
 static int pic32_eth_start(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct pic32eth_dev *priv = dev_get_priv(dev);
 
 	/* controller */
@@ -531,7 +531,7 @@
 
 static int pic32_eth_probe(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct pic32eth_dev *priv = dev_get_priv(dev);
 	const char *phy_mode;
 	void __iomem *iobase;
diff --git a/drivers/net/qe/dm_qe_uec.c b/drivers/net/qe/dm_qe_uec.c
index b4052c7..372926e 100644
--- a/drivers/net/qe/dm_qe_uec.c
+++ b/drivers/net/qe/dm_qe_uec.c
@@ -416,7 +416,7 @@
 static int qe_uec_set_hwaddr(struct udevice *dev)
 {
 	struct qe_uec_priv *priv = dev_get_priv(dev);
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct uec_priv *uec = priv->uec;
 	uec_t *uec_regs = uec->uec_regs;
 	uchar *mac = pdata->enetaddr;
@@ -982,7 +982,7 @@
 static int qe_uec_set_uec_info(struct udevice *dev)
 {
 	struct qe_uec_priv *priv = dev_get_priv(dev);
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct uec_priv *uec = priv->uec;
 	struct uec_inf *uec_info;
 	struct ucc_fast_inf *uf_info;
@@ -1086,7 +1086,7 @@
 static int qe_uec_probe(struct udevice *dev)
 {
 	struct qe_uec_priv *priv = dev_get_priv(dev);
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct uec_priv		*uec;
 	int ret;
 
@@ -1131,7 +1131,7 @@
 
 static int qe_uec_ofdata_to_platdata(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	const char *phy_mode;
 
 	pdata->iobase = (phys_addr_t)devfdt_get_addr(dev);
diff --git a/drivers/net/ravb.c b/drivers/net/ravb.c
index 48530c4..692cd57 100644
--- a/drivers/net/ravb.c
+++ b/drivers/net/ravb.c
@@ -306,7 +306,7 @@
 static int ravb_phy_config(struct udevice *dev)
 {
 	struct ravb_priv *eth = dev_get_priv(dev);
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct phy_device *phydev;
 	int mask = 0xffffffff, reg;
 
@@ -346,7 +346,7 @@
 static int ravb_write_hwaddr(struct udevice *dev)
 {
 	struct ravb_priv *eth = dev_get_priv(dev);
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	unsigned char *mac = pdata->enetaddr;
 
 	writel((mac[0] << 24) | (mac[1] << 16) | (mac[2] << 8) | mac[3],
@@ -373,7 +373,7 @@
 static int ravb_dmac_init(struct udevice *dev)
 {
 	struct ravb_priv *eth = dev_get_priv(dev);
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	int ret = 0;
 
 	/* Set CONFIG mode */
@@ -474,7 +474,7 @@
 
 static int ravb_probe(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct ravb_priv *eth = dev_get_priv(dev);
 	struct ofnode_phandle_args phandle_args;
 	struct mii_dev *mdiodev;
@@ -644,7 +644,7 @@
 
 int ravb_ofdata_to_platdata(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	const char *phy_mode;
 	const fdt32_t *cell;
 	int ret = 0;
diff --git a/drivers/net/rtl8139.c b/drivers/net/rtl8139.c
index c171e54..feeea93 100644
--- a/drivers/net/rtl8139.c
+++ b/drivers/net/rtl8139.c
@@ -660,7 +660,7 @@
 #else /* DM_ETH */
 static int rtl8139_start(struct udevice *dev)
 {
-	struct eth_pdata *plat = dev_get_platdata(dev);
+	struct eth_pdata *plat = dev_get_plat(dev);
 	struct rtl8139_priv *priv = dev_get_priv(dev);
 
 	memcpy(priv->enetaddr, plat->enetaddr, sizeof(plat->enetaddr));
@@ -704,7 +704,7 @@
 
 static int rtl8139_write_hwaddr(struct udevice *dev)
 {
-	struct eth_pdata *plat = dev_get_platdata(dev);
+	struct eth_pdata *plat = dev_get_plat(dev);
 	struct rtl8139_priv *priv = dev_get_priv(dev);
 
 	memcpy(priv->enetaddr, plat->enetaddr, sizeof(plat->enetaddr));
@@ -735,7 +735,7 @@
 
 static int rtl8139_probe(struct udevice *dev)
 {
-	struct eth_pdata *plat = dev_get_platdata(dev);
+	struct eth_pdata *plat = dev_get_plat(dev);
 	struct rtl8139_priv *priv = dev_get_priv(dev);
 	u32 iobase;
 
diff --git a/drivers/net/rtl8169.c b/drivers/net/rtl8169.c
index dc3405e..7aac8a9 100644
--- a/drivers/net/rtl8169.c
+++ b/drivers/net/rtl8169.c
@@ -890,7 +890,7 @@
 #ifdef CONFIG_DM_ETH
 static int rtl8169_eth_start(struct udevice *dev)
 {
-	struct eth_pdata *plat = dev_get_platdata(dev);
+	struct eth_pdata *plat = dev_get_plat(dev);
 	struct rtl8169_private *priv = dev_get_priv(dev);
 
 	rtl8169_common_start(dev, plat->enetaddr, priv->iobase);
@@ -953,7 +953,7 @@
 #ifdef CONFIG_DM_ETH
 static int rtl8169_write_hwaddr(struct udevice *dev)
 {
-	struct eth_pdata *plat = dev_get_platdata(dev);
+	struct eth_pdata *plat = dev_get_plat(dev);
 	unsigned int i;
 
 	RTL_W8(Cfg9346, Cfg9346_Unlock);
@@ -1189,7 +1189,7 @@
 {
 	struct pci_child_platdata *pplat = dev_get_parent_plat(dev);
 	struct rtl8169_private *priv = dev_get_priv(dev);
-	struct eth_pdata *plat = dev_get_platdata(dev);
+	struct eth_pdata *plat = dev_get_plat(dev);
 	u32 iobase;
 	int region;
 	int ret;
diff --git a/drivers/net/sandbox-raw.c b/drivers/net/sandbox-raw.c
index 76a424e..7a8bc15 100644
--- a/drivers/net/sandbox-raw.c
+++ b/drivers/net/sandbox-raw.c
@@ -22,7 +22,7 @@
 static int sb_eth_raw_start(struct udevice *dev)
 {
 	struct eth_sandbox_raw_priv *priv = dev_get_priv(dev);
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	int ret;
 
 	debug("eth_sandbox_raw: Start\n");
@@ -65,7 +65,7 @@
 
 static int sb_eth_raw_recv(struct udevice *dev, int flags, uchar **packetp)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct eth_sandbox_raw_priv *priv = dev_get_priv(dev);
 	int retval = 0;
 	int length;
@@ -134,7 +134,7 @@
 
 static int sb_eth_raw_read_rom_hwaddr(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 
 	net_random_ethaddr(pdata->enetaddr);
 
@@ -151,7 +151,7 @@
 
 static int sb_eth_raw_ofdata_to_platdata(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct eth_sandbox_raw_priv *priv = dev_get_priv(dev);
 	const char *ifname;
 	int ret;
diff --git a/drivers/net/sandbox.c b/drivers/net/sandbox.c
index 846b802..a672333 100644
--- a/drivers/net/sandbox.c
+++ b/drivers/net/sandbox.c
@@ -393,7 +393,7 @@
 
 static int sb_eth_write_hwaddr(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 
 	debug("eth_sandbox %s: Write HW ADDR - %pM\n", dev->name,
 	      pdata->enetaddr);
@@ -416,7 +416,7 @@
 
 static int sb_eth_ofdata_to_platdata(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct eth_sandbox_priv *priv = dev_get_priv(dev);
 	const u8 *mac;
 
diff --git a/drivers/net/sh_eth.c b/drivers/net/sh_eth.c
index b1b8731..147b36e 100644
--- a/drivers/net/sh_eth.c
+++ b/drivers/net/sh_eth.c
@@ -744,7 +744,7 @@
 	struct sh_ether_priv *priv = dev_get_priv(dev);
 	struct sh_eth_dev *eth = &priv->shdev;
 	struct sh_eth_info *port_info = &eth->port_info[eth->port];
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 
 	sh_eth_write_hwaddr(port_info, pdata->enetaddr);
 
@@ -754,7 +754,7 @@
 static int sh_eth_phy_config(struct udevice *dev)
 {
 	struct sh_ether_priv *priv = dev_get_priv(dev);
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct sh_eth_dev *eth = &priv->shdev;
 	int ret = 0;
 	struct sh_eth_info *port_info = &eth->port_info[eth->port];
@@ -776,7 +776,7 @@
 static int sh_ether_start(struct udevice *dev)
 {
 	struct sh_ether_priv *priv = dev_get_priv(dev);
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct sh_eth_dev *eth = &priv->shdev;
 	int ret;
 
@@ -808,7 +808,7 @@
 
 static int sh_ether_probe(struct udevice *udev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(udev);
+	struct eth_pdata *pdata = dev_get_plat(udev);
 	struct sh_ether_priv *priv = dev_get_priv(udev);
 	struct sh_eth_dev *eth = &priv->shdev;
 	struct ofnode_phandle_args phandle_args;
@@ -913,7 +913,7 @@
 
 int sh_ether_ofdata_to_platdata(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	const char *phy_mode;
 	const fdt32_t *cell;
 	int ret = 0;
diff --git a/drivers/net/smc911x.c b/drivers/net/smc911x.c
index 648932d..e3057a9 100644
--- a/drivers/net/smc911x.c
+++ b/drivers/net/smc911x.c
@@ -536,7 +536,7 @@
 
 static int smc911x_start(struct udevice *dev)
 {
-	struct eth_pdata *plat = dev_get_platdata(dev);
+	struct eth_pdata *plat = dev_get_plat(dev);
 	struct smc911x_priv *priv = dev_get_priv(dev);
 
 	memcpy(priv->enetaddr, plat->enetaddr, sizeof(plat->enetaddr));
@@ -577,7 +577,7 @@
 static int smc911x_read_rom_hwaddr(struct udevice *dev)
 {
 	struct smc911x_priv *priv = dev_get_priv(dev);
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 
 	if (!smc911x_read_mac_address(priv))
 		return -ENODEV;
@@ -610,7 +610,7 @@
 static int smc911x_ofdata_to_platdata(struct udevice *dev)
 {
 	struct smc911x_priv *priv = dev_get_priv(dev);
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 
 	pdata->iobase = dev_read_addr(dev);
 	priv->iobase = pdata->iobase;
diff --git a/drivers/net/sni_ave.c b/drivers/net/sni_ave.c
index 60153c0..9a1b2eb 100644
--- a/drivers/net/sni_ave.c
+++ b/drivers/net/sni_ave.c
@@ -299,7 +299,7 @@
 static int ave_adjust_link(struct ave_private *priv)
 {
 	struct phy_device *phydev = priv->phydev;
-	struct eth_pdata *pdata = dev_get_platdata(phydev->dev);
+	struct eth_pdata *pdata = dev_get_plat(phydev->dev);
 	u32 val, txcr, rxcr, rxcr_org;
 	u16 rmt_adv = 0, lcl_adv = 0;
 	u8 cap;
@@ -516,7 +516,7 @@
 static int ave_write_hwaddr(struct udevice *dev)
 {
 	struct ave_private *priv = dev_get_priv(dev);
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	u8 *mac = pdata->enetaddr;
 
 	writel(mac[0] | mac[1] << 8 | mac[2] << 16 | mac[3] << 24,
@@ -734,7 +734,7 @@
 
 static int ave_ofdata_to_platdata(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct ave_private *priv = dev_get_priv(dev);
 	struct ofnode_phandle_args args;
 	const char *phy_mode;
@@ -826,7 +826,7 @@
 
 static int ave_probe(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct ave_private *priv = dev_get_priv(dev);
 	int ret, nc, nr;
 
diff --git a/drivers/net/sun8i_emac.c b/drivers/net/sun8i_emac.c
index 3430b22..a9d04eb 100644
--- a/drivers/net/sun8i_emac.c
+++ b/drivers/net/sun8i_emac.c
@@ -255,7 +255,7 @@
 static int sun8i_eth_write_hwaddr(struct udevice *dev)
 {
 	struct emac_eth_dev *priv = dev_get_priv(dev);
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	uchar *mac_id = pdata->enetaddr;
 	u32 macid_lo, macid_hi;
 
@@ -712,7 +712,7 @@
 {
 	struct udevice *dev = bus->priv;
 	struct emac_eth_dev *priv = dev_get_priv(dev);
-	struct sun8i_eth_pdata *pdata = dev_get_platdata(dev);
+	struct sun8i_eth_pdata *pdata = dev_get_plat(dev);
 	int ret;
 
 	if (!dm_gpio_is_valid(&priv->reset_gpio))
@@ -799,7 +799,7 @@
 
 static int sun8i_emac_eth_probe(struct udevice *dev)
 {
-	struct sun8i_eth_pdata *sun8i_pdata = dev_get_platdata(dev);
+	struct sun8i_eth_pdata *sun8i_pdata = dev_get_plat(dev);
 	struct eth_pdata *pdata = &sun8i_pdata->eth_pdata;
 	struct emac_eth_dev *priv = dev_get_priv(dev);
 	int ret;
@@ -863,7 +863,7 @@
 
 static int sun8i_emac_eth_ofdata_to_platdata(struct udevice *dev)
 {
-	struct sun8i_eth_pdata *sun8i_pdata = dev_get_platdata(dev);
+	struct sun8i_eth_pdata *sun8i_pdata = dev_get_plat(dev);
 	struct eth_pdata *pdata = &sun8i_pdata->eth_pdata;
 	struct emac_eth_dev *priv = dev_get_priv(dev);
 	const char *phy_mode;
diff --git a/drivers/net/sunxi_emac.c b/drivers/net/sunxi_emac.c
index 0770a6b..1b01a47 100644
--- a/drivers/net/sunxi_emac.c
+++ b/drivers/net/sunxi_emac.c
@@ -535,7 +535,7 @@
 
 static int sunxi_emac_eth_start(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 
 	return _sunxi_emac_eth_init(dev->priv, pdata->enetaddr);
 }
@@ -565,7 +565,7 @@
 
 static int sunxi_emac_eth_probe(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct emac_eth_dev *priv = dev_get_priv(dev);
 	int ret;
 
@@ -593,7 +593,7 @@
 
 static int sunxi_emac_eth_ofdata_to_platdata(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 
 	pdata->iobase = dev_read_addr(dev);
 
diff --git a/drivers/net/ti/am65-cpsw-nuss.c b/drivers/net/ti/am65-cpsw-nuss.c
index ce891fc5..e6954b6 100644
--- a/drivers/net/ti/am65-cpsw-nuss.c
+++ b/drivers/net/ti/am65-cpsw-nuss.c
@@ -281,7 +281,7 @@
 
 static int am65_cpsw_start(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct am65_cpsw_priv *priv = dev_get_priv(dev);
 	struct am65_cpsw_common	*common = priv->cpsw_common;
 	struct am65_cpsw_port *port = &common->ports[priv->port_id];
@@ -514,7 +514,7 @@
 {
 	struct am65_cpsw_priv *priv = dev_get_priv(dev);
 	struct am65_cpsw_common *common = priv->cpsw_common;
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	u32 mac_hi, mac_lo;
 
 	if (common->mac_efuse == FDT_ADDR_T_NONE)
@@ -563,7 +563,7 @@
 {
 	struct am65_cpsw_priv *priv = dev_get_priv(dev);
 	struct am65_cpsw_common *cpsw_common = priv->cpsw_common;
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct phy_device *phydev;
 	u32 supported = PHY_GBIT_FEATURES;
 	int ret;
@@ -599,7 +599,7 @@
 
 static int am65_cpsw_ofdata_parse_phy(struct udevice *dev, ofnode port_np)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct am65_cpsw_priv *priv = dev_get_priv(dev);
 	struct ofnode_phandle_args out_args;
 	const char *phy_mode;
@@ -649,7 +649,7 @@
 static int am65_cpsw_probe_cpsw(struct udevice *dev)
 {
 	struct am65_cpsw_priv *priv = dev_get_priv(dev);
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct am65_cpsw_common *cpsw_common;
 	ofnode ports_np, node;
 	int ret, i;
diff --git a/drivers/net/ti/cpsw.c b/drivers/net/ti/cpsw.c
index 6234891..9aa1858 100644
--- a/drivers/net/ti/cpsw.c
+++ b/drivers/net/ti/cpsw.c
@@ -456,7 +456,7 @@
 			       struct cpsw_priv *priv)
 {
 #ifdef CONFIG_DM_ETH
-	struct eth_pdata *pdata = dev_get_platdata(priv->dev);
+	struct eth_pdata *pdata = dev_get_plat(priv->dev);
 
 	writel(mac_hi(pdata->enetaddr), &slave->regs->sa_hi);
 	writel(mac_lo(pdata->enetaddr), &slave->regs->sa_lo);
@@ -1014,7 +1014,7 @@
 #else
 static int cpsw_eth_start(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct cpsw_priv *priv = dev_get_priv(dev);
 
 	return _cpsw_init(priv, pdata->enetaddr);
@@ -1176,7 +1176,7 @@
 static int cpsw_eth_probe(struct udevice *dev)
 {
 	struct cpsw_priv *priv = dev_get_priv(dev);
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 
 	priv->dev = dev;
 	priv->data = pdata->priv_pdata;
@@ -1225,7 +1225,7 @@
 
 static int cpsw_eth_ofdata_to_platdata(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct cpsw_platform_data *data;
 	struct gpio_desc *mode_gpios;
 	int slave_index = 0;
diff --git a/drivers/net/ti/davinci_emac.c b/drivers/net/ti/davinci_emac.c
index 9cf7e6c..bfe1b84 100644
--- a/drivers/net/ti/davinci_emac.c
+++ b/drivers/net/ti/davinci_emac.c
@@ -112,7 +112,7 @@
 
 static int davinci_emac_write_hwaddr(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	unsigned long		mac_hi;
 	unsigned long		mac_lo;
 
diff --git a/drivers/net/ti/keystone_net.c b/drivers/net/ti/keystone_net.c
index b67981e..8e9eca1 100644
--- a/drivers/net/ti/keystone_net.c
+++ b/drivers/net/ti/keystone_net.c
@@ -496,7 +496,7 @@
 int ks2_eth_read_rom_hwaddr(struct udevice *dev)
 {
 	struct ks2_eth_priv *priv = dev_get_priv(dev);
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	u32 maca = 0;
 	u32 macb = 0;
 
@@ -519,7 +519,7 @@
 int ks2_eth_write_hwaddr(struct udevice *dev)
 {
 	struct ks2_eth_priv *priv = dev_get_priv(dev);
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 
 	writel(mac_hi(pdata->enetaddr),
 	       DEVICE_EMACSW_BASE(pdata->iobase, priv->slave_port - 1) +
@@ -750,7 +750,7 @@
 static int ks2_sl_eth_ofdata_to_platdata(struct udevice *dev)
 {
 	struct ks2_eth_priv *priv = dev_get_priv(dev);
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	const void *fdt = gd->fdt_blob;
 	int slave = dev_of_offset(dev);
 	int interfaces;
@@ -773,7 +773,7 @@
 static int ks2_eth_ofdata_to_platdata(struct udevice *dev)
 {
 	struct ks2_eth_priv *priv = dev_get_priv(dev);
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	const void *fdt = gd->fdt_blob;
 	int gbe_0 = -ENODEV;
 	int netcp_devices;
diff --git a/drivers/net/tsec.c b/drivers/net/tsec.c
index 8c53059..2271eb8 100644
--- a/drivers/net/tsec.c
+++ b/drivers/net/tsec.c
@@ -562,7 +562,7 @@
 {
 	struct tsec_private *priv = (struct tsec_private *)dev->priv;
 #ifdef CONFIG_DM_ETH
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 #else
 	struct eth_device *pdata = dev;
 #endif
@@ -799,7 +799,7 @@
 #else /* CONFIG_DM_ETH */
 int tsec_probe(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct tsec_private *priv = dev_get_priv(dev);
 	struct ofnode_phandle_args phandle_args;
 	u32 tbiaddr = CONFIG_SYS_TBIPA_VALUE;
diff --git a/drivers/net/xilinx_axi_emac.c b/drivers/net/xilinx_axi_emac.c
index 5604a33..10c6b60 100644
--- a/drivers/net/xilinx_axi_emac.c
+++ b/drivers/net/xilinx_axi_emac.c
@@ -425,7 +425,7 @@
 
 static int axiemac_write_hwaddr(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct axidma_priv *priv = dev_get_priv(dev);
 	struct axi_regs *regs = priv->iobase;
 
@@ -728,7 +728,7 @@
 
 static int axi_emac_ofdata_to_platdata(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct axidma_priv *priv = dev_get_priv(dev);
 	int node = dev_of_offset(dev);
 	int offset = 0;
diff --git a/drivers/net/xilinx_emaclite.c b/drivers/net/xilinx_emaclite.c
index acbf0fa..4a0e3f6 100644
--- a/drivers/net/xilinx_emaclite.c
+++ b/drivers/net/xilinx_emaclite.c
@@ -322,7 +322,7 @@
 static int emaclite_start(struct udevice *dev)
 {
 	struct xemaclite *emaclite = dev_get_priv(dev);
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct emaclite_regs *regs = emaclite->regs;
 
 	debug("EmacLite Initialization Started\n");
@@ -595,7 +595,7 @@
 
 static int emaclite_ofdata_to_platdata(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct xemaclite *emaclite = dev_get_priv(dev);
 	int offset = 0;
 
diff --git a/drivers/net/zynq_gem.c b/drivers/net/zynq_gem.c
index ea57be2..9d25051 100644
--- a/drivers/net/zynq_gem.c
+++ b/drivers/net/zynq_gem.c
@@ -270,7 +270,7 @@
 static int zynq_gem_setup_mac(struct udevice *dev)
 {
 	u32 i, macaddrlow, macaddrhigh;
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct zynq_gem_priv *priv = dev_get_priv(dev);
 	struct zynq_gem_regs *regs = priv->iobase;
 
@@ -635,7 +635,7 @@
 
 static int zynq_gem_read_rom_mac(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 
 	if (!pdata)
 		return -ENOSYS;
@@ -745,7 +745,7 @@
 
 static int zynq_gem_ofdata_to_platdata(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct zynq_gem_priv *priv = dev_get_priv(dev);
 	struct ofnode_phandle_args phandle_args;
 	const char *phy_mode;
diff --git a/drivers/pci/pci-rcar-gen3.c b/drivers/pci/pci-rcar-gen3.c
index 3a0a4b5..9ef6314 100644
--- a/drivers/pci/pci-rcar-gen3.c
+++ b/drivers/pci/pci-rcar-gen3.c
@@ -129,7 +129,7 @@
 
 static void rcar_rmw32(struct udevice *dev, int where, u32 mask, u32 data)
 {
-	struct rcar_gen3_pcie_priv *priv = dev_get_platdata(dev);
+	struct rcar_gen3_pcie_priv *priv = dev_get_plat(dev);
 	int shift = 8 * (where & 3);
 
 	clrsetbits_le32(priv->regs + (where & ~3),
@@ -138,7 +138,7 @@
 
 static u32 rcar_read_conf(const struct udevice *dev, int where)
 {
-	struct rcar_gen3_pcie_priv *priv = dev_get_platdata(dev);
+	struct rcar_gen3_pcie_priv *priv = dev_get_plat(dev);
 	int shift = 8 * (where & 3);
 
 	return readl(priv->regs + (where & ~3)) >> shift;
@@ -148,7 +148,7 @@
 				   unsigned char access_type,
 				   pci_dev_t bdf, int where, ulong *data)
 {
-	struct rcar_gen3_pcie_priv *priv = dev_get_platdata(udev);
+	struct rcar_gen3_pcie_priv *priv = dev_get_plat(udev);
 	u32 reg = where & ~3;
 
 	/* Clear errors */
@@ -241,7 +241,7 @@
 
 static int rcar_gen3_pcie_wait_for_phyrdy(struct udevice *dev)
 {
-	struct rcar_gen3_pcie_priv *priv = dev_get_platdata(dev);
+	struct rcar_gen3_pcie_priv *priv = dev_get_plat(dev);
 
 	return wait_for_bit_le32((void *)priv->regs + PCIEPHYSR, PHYRDY,
 				 true, 50, false);
@@ -249,7 +249,7 @@
 
 static int rcar_gen3_pcie_wait_for_dl(struct udevice *dev)
 {
-	struct rcar_gen3_pcie_priv *priv = dev_get_platdata(dev);
+	struct rcar_gen3_pcie_priv *priv = dev_get_plat(dev);
 
 	return wait_for_bit_le32((void *)priv->regs + PCIETSTR,
 				 DATA_LINK_ACTIVE, true, 50, false);
@@ -257,7 +257,7 @@
 
 static int rcar_gen3_pcie_hw_init(struct udevice *dev)
 {
-	struct rcar_gen3_pcie_priv *priv = dev_get_platdata(dev);
+	struct rcar_gen3_pcie_priv *priv = dev_get_plat(dev);
 	int ret;
 
 	/* Begin initialization */
@@ -313,7 +313,7 @@
 
 static int rcar_gen3_pcie_probe(struct udevice *dev)
 {
-	struct rcar_gen3_pcie_priv *priv = dev_get_platdata(dev);
+	struct rcar_gen3_pcie_priv *priv = dev_get_plat(dev);
 	struct pci_controller *hose = dev_get_uclass_priv(dev);
 	struct clk pci_clk;
 	u32 mask;
@@ -374,7 +374,7 @@
 
 static int rcar_gen3_pcie_ofdata_to_platdata(struct udevice *dev)
 {
-	struct rcar_gen3_pcie_priv *priv = dev_get_platdata(dev);
+	struct rcar_gen3_pcie_priv *priv = dev_get_plat(dev);
 
 	priv->regs = devfdt_get_addr_index(dev, 0);
 	if (!priv->regs)
diff --git a/drivers/pci/pci_mvebu.c b/drivers/pci/pci_mvebu.c
index 7deb15f..f2d6222 100644
--- a/drivers/pci/pci_mvebu.c
+++ b/drivers/pci/pci_mvebu.c
@@ -143,7 +143,7 @@
 				  uint offset, ulong *valuep,
 				  enum pci_size_t size)
 {
-	struct mvebu_pcie *pcie = dev_get_platdata(bus);
+	struct mvebu_pcie *pcie = dev_get_plat(bus);
 	int local_bus = PCI_BUS(pcie->dev);
 	int local_dev = PCI_DEV(pcie->dev);
 	u32 reg;
@@ -187,7 +187,7 @@
 				   uint offset, ulong value,
 				   enum pci_size_t size)
 {
-	struct mvebu_pcie *pcie = dev_get_platdata(bus);
+	struct mvebu_pcie *pcie = dev_get_plat(bus);
 	int local_bus = PCI_BUS(pcie->dev);
 	int local_dev = PCI_DEV(pcie->dev);
 	u32 data;
@@ -277,7 +277,7 @@
 
 static int mvebu_pcie_probe(struct udevice *dev)
 {
-	struct mvebu_pcie *pcie = dev_get_platdata(dev);
+	struct mvebu_pcie *pcie = dev_get_plat(dev);
 	struct udevice *ctlr = pci_get_controller(dev);
 	struct pci_controller *hose = dev_get_uclass_priv(ctlr);
 	static int bus;
@@ -412,7 +412,7 @@
 
 static int mvebu_pcie_ofdata_to_platdata(struct udevice *dev)
 {
-	struct mvebu_pcie *pcie = dev_get_platdata(dev);
+	struct mvebu_pcie *pcie = dev_get_plat(dev);
 	int ret = 0;
 
 	/* Get port number, lane number and memory target / attr */
diff --git a/drivers/phy/allwinner/phy-sun4i-usb.c b/drivers/phy/allwinner/phy-sun4i-usb.c
index f5ed969..5723c98 100644
--- a/drivers/phy/allwinner/phy-sun4i-usb.c
+++ b/drivers/phy/allwinner/phy-sun4i-usb.c
@@ -428,7 +428,7 @@
 
 static int sun4i_usb_phy_probe(struct udevice *dev)
 {
-	struct sun4i_usb_phy_plat *plat = dev_get_platdata(dev);
+	struct sun4i_usb_phy_plat *plat = dev_get_plat(dev);
 	struct sun4i_usb_phy_data *data = dev_get_priv(dev);
 	int i, ret;
 
diff --git a/drivers/pinctrl/intel/pinctrl_apl.c b/drivers/pinctrl/intel/pinctrl_apl.c
index a4f46e6..b34cae6 100644
--- a/drivers/pinctrl/intel/pinctrl_apl.c
+++ b/drivers/pinctrl/intel/pinctrl_apl.c
@@ -143,7 +143,7 @@
 	int i;
 
 #if CONFIG_IS_ENABLED(OF_PLATDATA)
-	struct apl_gpio_platdata *plat = dev_get_platdata(dev);
+	struct apl_gpio_platdata *plat = dev_get_plat(dev);
 	int ret;
 
 	/*
diff --git a/drivers/pinctrl/pinctrl-at91-pio4.c b/drivers/pinctrl/pinctrl-at91-pio4.c
index 3bc16bb..9a25cfa 100644
--- a/drivers/pinctrl/pinctrl-at91-pio4.c
+++ b/drivers/pinctrl/pinctrl-at91-pio4.c
@@ -95,7 +95,7 @@
 static inline struct atmel_pio4_port *atmel_pio4_bank_base(struct udevice *dev,
 							   u32 bank)
 {
-	struct atmel_pio4_platdata *plat = dev_get_platdata(dev);
+	struct atmel_pio4_platdata *plat = dev_get_plat(dev);
 	struct atmel_pio4_port *bank_base =
 			(struct atmel_pio4_port *)((u32)plat->reg_base +
 			ATMEL_PIO_BANK_OFFSET * bank);
@@ -154,7 +154,7 @@
 
 static int atmel_pinctrl_probe(struct udevice *dev)
 {
-	struct atmel_pio4_platdata *plat = dev_get_platdata(dev);
+	struct atmel_pio4_platdata *plat = dev_get_plat(dev);
 	fdt_addr_t addr_base;
 
 	dev = dev_get_parent(dev);
diff --git a/drivers/pinctrl/pinctrl-sti.c b/drivers/pinctrl/pinctrl-sti.c
index de208d4..1ea869a 100644
--- a/drivers/pinctrl/pinctrl-sti.c
+++ b/drivers/pinctrl/pinctrl-sti.c
@@ -57,7 +57,7 @@
  */
 void sti_alternate_select(struct udevice *dev, struct sti_pin_desc *pin_desc)
 {
-	struct sti_pinctrl_platdata *plat = dev_get_platdata(dev);
+	struct sti_pinctrl_platdata *plat = dev_get_plat(dev);
 	unsigned long sysconf, *sysconfreg;
 	int alt = pin_desc->alt;
 	int bank = pin_desc->bank;
@@ -91,7 +91,7 @@
 /* pin configuration */
 void sti_pin_configure(struct udevice *dev, struct sti_pin_desc *pin_desc)
 {
-	struct sti_pinctrl_platdata *plat = dev_get_platdata(dev);
+	struct sti_pinctrl_platdata *plat = dev_get_plat(dev);
 	int bit;
 	int oe = 0, pu = 0, od = 0;
 	unsigned long *sysconfreg;
@@ -277,7 +277,7 @@
 
 static int sti_pinctrl_probe(struct udevice *dev)
 {
-	struct sti_pinctrl_platdata *plat = dev_get_platdata(dev);
+	struct sti_pinctrl_platdata *plat = dev_get_plat(dev);
 	struct udevice *syscon;
 	int err;
 
diff --git a/drivers/pinctrl/pinctrl-stmfx.c b/drivers/pinctrl/pinctrl-stmfx.c
index 21c7dc4..7cf08db 100644
--- a/drivers/pinctrl/pinctrl-stmfx.c
+++ b/drivers/pinctrl/pinctrl-stmfx.c
@@ -293,7 +293,7 @@
 				  unsigned int param, unsigned int arg)
 {
 	int ret, dir;
-	struct stmfx_pinctrl *plat = dev_get_platdata(dev);
+	struct stmfx_pinctrl *plat = dev_get_plat(dev);
 
 	dir = stmfx_gpio_get_function(plat->gpio, pin);
 
@@ -334,7 +334,7 @@
 
 static int stmfx_pinctrl_get_pins_count(struct udevice *dev)
 {
-	struct stmfx_pinctrl *plat = dev_get_platdata(dev);
+	struct stmfx_pinctrl *plat = dev_get_plat(dev);
 	struct gpio_dev_priv *uc_priv;
 
 	uc_priv = dev_get_uclass_priv(plat->gpio);
@@ -390,7 +390,7 @@
 					unsigned int selector,
 					char *buf, int size)
 {
-	struct stmfx_pinctrl *plat = dev_get_platdata(dev);
+	struct stmfx_pinctrl *plat = dev_get_plat(dev);
 	int func;
 
 	func = stmfx_gpio_get_function(plat->gpio, selector);
@@ -406,7 +406,7 @@
 
 static int stmfx_pinctrl_bind(struct udevice *dev)
 {
-	struct stmfx_pinctrl *plat = dev_get_platdata(dev);
+	struct stmfx_pinctrl *plat = dev_get_plat(dev);
 
 	/* subnode name is not explicit: use father name */
 	device_set_name(dev, dev->parent->name);
@@ -418,7 +418,7 @@
 
 static int stmfx_pinctrl_probe(struct udevice *dev)
 {
-	struct stmfx_pinctrl *plat = dev_get_platdata(dev);
+	struct stmfx_pinctrl *plat = dev_get_plat(dev);
 
 	return device_probe(plat->gpio);
 };
diff --git a/drivers/pinctrl/renesas/pfc-r7s72100.c b/drivers/pinctrl/renesas/pfc-r7s72100.c
index ec55caa..bc81684 100644
--- a/drivers/pinctrl/renesas/pfc-r7s72100.c
+++ b/drivers/pinctrl/renesas/pfc-r7s72100.c
@@ -39,7 +39,7 @@
 static void r7s72100_pfc_set_function(struct udevice *dev, u16 bank, u16 line,
 				      u16 func, u16 inbuf, u16 bidir)
 {
-	struct r7s72100_pfc_platdata *plat = dev_get_platdata(dev);
+	struct r7s72100_pfc_platdata *plat = dev_get_plat(dev);
 
 	clrsetbits_le16(plat->base + PFCAE(bank), BIT(line),
 			(func & BIT(2)) ? BIT(line) : 0);
@@ -108,7 +108,7 @@
 
 static int r7s72100_pfc_probe(struct udevice *dev)
 {
-	struct r7s72100_pfc_platdata *plat = dev_get_platdata(dev);
+	struct r7s72100_pfc_platdata *plat = dev_get_plat(dev);
 	fdt_addr_t addr_base;
 	ofnode node;
 
diff --git a/drivers/power/acpi_pmc/pmc_emul.c b/drivers/power/acpi_pmc/pmc_emul.c
index 9ce8c16..0a72afd 100644
--- a/drivers/power/acpi_pmc/pmc_emul.c
+++ b/drivers/power/acpi_pmc/pmc_emul.c
@@ -46,7 +46,7 @@
 static int sandbox_pmc_emul_read_config(const struct udevice *emul, uint offset,
 					ulong *valuep, enum pci_size_t size)
 {
-	struct pmc_emul_platdata *plat = dev_get_platdata(emul);
+	struct pmc_emul_platdata *plat = dev_get_plat(emul);
 
 	switch (offset) {
 	case PCI_COMMAND:
@@ -99,7 +99,7 @@
 static int sandbox_pmc_emul_write_config(struct udevice *emul, uint offset,
 					 ulong value, enum pci_size_t size)
 {
-	struct pmc_emul_platdata *plat = dev_get_platdata(emul);
+	struct pmc_emul_platdata *plat = dev_get_plat(emul);
 
 	switch (offset) {
 	case PCI_COMMAND:
@@ -127,7 +127,7 @@
 static int sandbox_pmc_emul_find_bar(struct udevice *emul, unsigned int addr,
 				     int *barnump, unsigned int *offsetp)
 {
-	struct pmc_emul_platdata *plat = dev_get_platdata(emul);
+	struct pmc_emul_platdata *plat = dev_get_plat(emul);
 	int barnum;
 
 	for (barnum = 0; barnum < ARRAY_SIZE(barinfo); barnum++) {
diff --git a/drivers/power/domain/imx8-power-domain-legacy.c b/drivers/power/domain/imx8-power-domain-legacy.c
index ed88fd7..c97dfbb 100644
--- a/drivers/power/domain/imx8-power-domain-legacy.c
+++ b/drivers/power/domain/imx8-power-domain-legacy.c
@@ -116,7 +116,7 @@
 			return err;
 	}
 
-	pdata = (struct imx8_power_domain_platdata *)dev_get_platdata(dev);
+	pdata = (struct imx8_power_domain_platdata *)dev_get_plat(dev);
 	ppriv = (struct imx8_power_domain_priv *)dev_get_priv(dev);
 
 	debug("%s(power_domain=%s) resource_id %d\n", __func__, dev->name,
@@ -155,7 +155,7 @@
 	sc_err_t ret;
 
 	ppriv = dev_get_priv(dev);
-	pdata = dev_get_platdata(dev);
+	pdata = dev_get_plat(dev);
 
 	debug("%s, %s, state_on %d\n", __func__, dev->name, ppriv->state_on);
 
@@ -208,7 +208,7 @@
 
 	if (device_get_uclass_id(parent) == UCLASS_POWER_DOMAIN) {
 		pdata =
-		(struct imx8_power_domain_platdata *)dev_get_platdata(parent);
+		(struct imx8_power_domain_platdata *)dev_get_plat(parent);
 		ppriv = (struct imx8_power_domain_priv *)dev_get_priv(parent);
 
 		debug("%s, %s, state_on %d\n", __func__, parent->name,
@@ -343,7 +343,7 @@
 static int imx8_power_domain_ofdata_to_platdata(struct udevice *dev)
 {
 	int reg;
-	struct imx8_power_domain_platdata *pdata = dev_get_platdata(dev);
+	struct imx8_power_domain_platdata *pdata = dev_get_plat(dev);
 
 	reg = fdtdec_get_int(gd->fdt_blob, dev_of_offset(dev), "reg", -1);
 	if (reg == -1) {
diff --git a/drivers/power/domain/imx8m-power-domain.c b/drivers/power/domain/imx8m-power-domain.c
index 7e2d232..1248f93 100644
--- a/drivers/power/domain/imx8m-power-domain.c
+++ b/drivers/power/domain/imx8m-power-domain.c
@@ -32,7 +32,7 @@
 	struct udevice *dev = power_domain->dev;
 	struct imx8m_power_domain_platdata *pdata;
 
-	pdata = dev_get_platdata(dev);
+	pdata = dev_get_plat(dev);
 
 	if (pdata->resource_id < 0)
 		return -EINVAL;
@@ -50,7 +50,7 @@
 {
 	struct udevice *dev = power_domain->dev;
 	struct imx8m_power_domain_platdata *pdata;
-	pdata = dev_get_platdata(dev);
+	pdata = dev_get_plat(dev);
 
 	if (pdata->resource_id < 0)
 		return -EINVAL;
@@ -106,7 +106,7 @@
 
 static int imx8m_power_domain_ofdata_to_platdata(struct udevice *dev)
 {
-	struct imx8m_power_domain_platdata *pdata = dev_get_platdata(dev);
+	struct imx8m_power_domain_platdata *pdata = dev_get_plat(dev);
 
 	pdata->resource_id = fdtdec_get_int(gd->fdt_blob, dev_of_offset(dev),
 					    "reg", -1);
diff --git a/drivers/power/pmic/i2c_pmic_emul.c b/drivers/power/pmic/i2c_pmic_emul.c
index 168b8a5..a85de82 100644
--- a/drivers/power/pmic/i2c_pmic_emul.c
+++ b/drivers/power/pmic/i2c_pmic_emul.c
@@ -30,7 +30,7 @@
 static int sandbox_i2c_pmic_read_data(struct udevice *emul, uchar chip,
 				      uchar *buffer, int len)
 {
-	struct sandbox_i2c_pmic_plat_data *plat = dev_get_platdata(emul);
+	struct sandbox_i2c_pmic_plat_data *plat = dev_get_plat(emul);
 
 	if (plat->rw_idx + len > plat->buf_size) {
 		pr_err("Request exceeds PMIC register range! Max register: %#x",
@@ -50,7 +50,7 @@
 				       uchar *buffer, int len,
 				       bool next_is_read)
 {
-	struct sandbox_i2c_pmic_plat_data *plat = dev_get_platdata(emul);
+	struct sandbox_i2c_pmic_plat_data *plat = dev_get_plat(emul);
 
 	/* Probe only */
 	if (!len)
@@ -105,7 +105,7 @@
 
 static int sandbox_i2c_pmic_ofdata_to_platdata(struct udevice *emul)
 {
-	struct sandbox_i2c_pmic_plat_data *plat = dev_get_platdata(emul);
+	struct sandbox_i2c_pmic_plat_data *plat = dev_get_plat(emul);
 	struct udevice *pmic_dev = i2c_emul_get_device(emul);
 
 	debug("%s:%d Setting PMIC default registers\n", __func__, __LINE__);
@@ -116,7 +116,7 @@
 
 static int sandbox_i2c_pmic_probe(struct udevice *emul)
 {
-	struct sandbox_i2c_pmic_plat_data *plat = dev_get_platdata(emul);
+	struct sandbox_i2c_pmic_plat_data *plat = dev_get_plat(emul);
 	struct udevice *pmic_dev = i2c_emul_get_device(emul);
 	struct uc_pmic_priv *upriv = dev_get_uclass_priv(pmic_dev);
 	const u8 *reg_defaults;
diff --git a/drivers/power/regulator/bd71837.c b/drivers/power/regulator/bd71837.c
index c9d966fd..1637a2d 100644
--- a/drivers/power/regulator/bd71837.c
+++ b/drivers/power/regulator/bd71837.c
@@ -274,7 +274,7 @@
 static int bd71837_get_enable(struct udevice *dev)
 {
 	int val;
-	struct bd71837_platdata *plat = dev_get_platdata(dev);
+	struct bd71837_platdata *plat = dev_get_plat(dev);
 
 	/*
 	 * boot critical regulators on bd71837 must not be controlled by sw
@@ -298,7 +298,7 @@
 static int bd71837_set_enable(struct udevice *dev, bool enable)
 {
 	int val = 0;
-	struct bd71837_platdata *plat = dev_get_platdata(dev);
+	struct bd71837_platdata *plat = dev_get_plat(dev);
 
 	/*
 	 * boot critical regulators on bd71837 must not be controlled by sw
@@ -321,7 +321,7 @@
 	unsigned int range;
 	int i;
 	int found = 0;
-	struct bd71837_platdata *plat = dev_get_platdata(dev);
+	struct bd71837_platdata *plat = dev_get_plat(dev);
 
 	/*
 	 * An under/overshooting may occur if voltage is changed for other
@@ -369,7 +369,7 @@
 {
 	unsigned int reg, range;
 	unsigned int tmp;
-	struct bd71837_platdata *plat = dev_get_platdata(dev);
+	struct bd71837_platdata *plat = dev_get_plat(dev);
 	int i;
 
 	reg = pmic_reg_read(dev->parent, plat->volt_reg);
@@ -399,7 +399,7 @@
 
 static int bd71837_regulator_probe(struct udevice *dev)
 {
-	struct bd71837_platdata *plat = dev_get_platdata(dev);
+	struct bd71837_platdata *plat = dev_get_plat(dev);
 	int i, ret;
 	struct dm_regulator_uclass_plat *uc_pdata;
 	int type;
diff --git a/drivers/power/regulator/fan53555.c b/drivers/power/regulator/fan53555.c
index 709cc63..02a08b5 100644
--- a/drivers/power/regulator/fan53555.c
+++ b/drivers/power/regulator/fan53555.c
@@ -102,7 +102,7 @@
 
 static int fan53555_regulator_ofdata_to_platdata(struct udevice *dev)
 {
-	struct fan53555_platdata *dev_pdata = dev_get_platdata(dev);
+	struct fan53555_platdata *dev_pdata = dev_get_plat(dev);
 	struct dm_regulator_uclass_plat *uc_pdata =
 		dev_get_uclass_plat(dev);
 	u32 sleep_vsel;
@@ -136,7 +136,7 @@
 
 static int fan53555_regulator_get_value(struct udevice *dev)
 {
-	struct fan53555_platdata *pdata = dev_get_platdata(dev);
+	struct fan53555_platdata *pdata = dev_get_plat(dev);
 	struct fan53555_priv *priv = dev_get_priv(dev);
 	int reg;
 	int voltage;
@@ -153,7 +153,7 @@
 
 static int fan53555_regulator_set_value(struct udevice *dev, int uV)
 {
-	struct fan53555_platdata *pdata = dev_get_platdata(dev);
+	struct fan53555_platdata *pdata = dev_get_plat(dev);
 	struct fan53555_priv *priv = dev_get_priv(dev);
 	u8 vol;
 
diff --git a/drivers/power/regulator/fixed.c b/drivers/power/regulator/fixed.c
index ed27ffc..4967b70 100644
--- a/drivers/power/regulator/fixed.c
+++ b/drivers/power/regulator/fixed.c
@@ -19,7 +19,7 @@
 	struct dm_regulator_uclass_plat *uc_pdata;
 	struct regulator_common_platdata *dev_pdata;
 
-	dev_pdata = dev_get_platdata(dev);
+	dev_pdata = dev_get_plat(dev);
 	uc_pdata = dev_get_uclass_plat(dev);
 	if (!uc_pdata)
 		return -ENXIO;
@@ -63,12 +63,12 @@
 
 static int fixed_regulator_get_enable(struct udevice *dev)
 {
-	return regulator_common_get_enable(dev, dev_get_platdata(dev));
+	return regulator_common_get_enable(dev, dev_get_plat(dev));
 }
 
 static int fixed_regulator_set_enable(struct udevice *dev, bool enable)
 {
-	return regulator_common_set_enable(dev, dev_get_platdata(dev), enable);
+	return regulator_common_set_enable(dev, dev_get_plat(dev), enable);
 }
 
 static const struct dm_regulator_ops fixed_regulator_ops = {
diff --git a/drivers/power/regulator/gpio-regulator.c b/drivers/power/regulator/gpio-regulator.c
index 39b0f08..80a6949 100644
--- a/drivers/power/regulator/gpio-regulator.c
+++ b/drivers/power/regulator/gpio-regulator.c
@@ -33,7 +33,7 @@
 	int ret, count, i, j;
 	u32 states_array[GPIO_REGULATOR_MAX_STATES * 2];
 
-	dev_pdata = dev_get_platdata(dev);
+	dev_pdata = dev_get_plat(dev);
 	uc_pdata = dev_get_uclass_plat(dev);
 	if (!uc_pdata)
 		return -ENXIO;
@@ -80,7 +80,7 @@
 static int gpio_regulator_get_value(struct udevice *dev)
 {
 	struct dm_regulator_uclass_plat *uc_pdata;
-	struct gpio_regulator_platdata *dev_pdata = dev_get_platdata(dev);
+	struct gpio_regulator_platdata *dev_pdata = dev_get_plat(dev);
 	int enable;
 
 	if (!dev_pdata->gpio.dev)
@@ -101,7 +101,7 @@
 
 static int gpio_regulator_set_value(struct udevice *dev, int uV)
 {
-	struct gpio_regulator_platdata *dev_pdata = dev_get_platdata(dev);
+	struct gpio_regulator_platdata *dev_pdata = dev_get_plat(dev);
 	int ret;
 	bool enable;
 
@@ -127,13 +127,13 @@
 
 static int gpio_regulator_get_enable(struct udevice *dev)
 {
-	struct gpio_regulator_platdata *dev_pdata = dev_get_platdata(dev);
+	struct gpio_regulator_platdata *dev_pdata = dev_get_plat(dev);
 	return regulator_common_get_enable(dev, &dev_pdata->common);
 }
 
 static int gpio_regulator_set_enable(struct udevice *dev, bool enable)
 {
-	struct gpio_regulator_platdata *dev_pdata = dev_get_platdata(dev);
+	struct gpio_regulator_platdata *dev_pdata = dev_get_plat(dev);
 	return regulator_common_set_enable(dev, &dev_pdata->common, enable);
 }
 
diff --git a/drivers/power/regulator/pfuze100.c b/drivers/power/regulator/pfuze100.c
index ebf355c..d75ea7c 100644
--- a/drivers/power/regulator/pfuze100.c
+++ b/drivers/power/regulator/pfuze100.c
@@ -261,7 +261,7 @@
 static int pfuze100_regulator_probe(struct udevice *dev)
 {
 	struct dm_regulator_uclass_plat *uc_pdata;
-	struct pfuze100_regulator_platdata *plat = dev_get_platdata(dev);
+	struct pfuze100_regulator_platdata *plat = dev_get_plat(dev);
 	struct pfuze100_regulator_desc *desc;
 
 	switch (dev_get_driver_data(dev_get_parent(dev))) {
@@ -315,7 +315,7 @@
 static int pfuze100_regulator_mode(struct udevice *dev, int op, int *opmode)
 {
 	int val;
-	struct pfuze100_regulator_platdata *plat = dev_get_platdata(dev);
+	struct pfuze100_regulator_platdata *plat = dev_get_plat(dev);
 	struct pfuze100_regulator_desc *desc = plat->desc;
 
 	if (op == PMIC_OP_GET) {
@@ -449,7 +449,7 @@
 {
 	int i;
 	int val;
-	struct pfuze100_regulator_platdata *plat = dev_get_platdata(dev);
+	struct pfuze100_regulator_platdata *plat = dev_get_plat(dev);
 	struct pfuze100_regulator_desc *desc = plat->desc;
 	struct dm_regulator_uclass_plat *uc_pdata =
 		dev_get_uclass_plat(dev);
diff --git a/drivers/power/regulator/tps62360_regulator.c b/drivers/power/regulator/tps62360_regulator.c
index e44c6bb..b9f4504 100644
--- a/drivers/power/regulator/tps62360_regulator.c
+++ b/drivers/power/regulator/tps62360_regulator.c
@@ -43,7 +43,7 @@
 
 static int tps62360_regulator_set_value(struct udevice *dev, int uV)
 {
-	struct tps62360_regulator_pdata *pdata = dev_get_platdata(dev);
+	struct tps62360_regulator_pdata *pdata = dev_get_plat(dev);
 	u8 regval;
 
 	if (uV < pdata->config->vmin || uV > pdata->config->vmax)
@@ -66,7 +66,7 @@
 {
 	u8 regval;
 	int ret;
-	struct tps62360_regulator_pdata *pdata = dev_get_platdata(dev);
+	struct tps62360_regulator_pdata *pdata = dev_get_plat(dev);
 
 	ret = dm_i2c_read(pdata->i2c, TPS62360_REG_SET0 + pdata->vsel_offset,
 			  &regval, 1);
@@ -80,7 +80,7 @@
 
 static int tps62360_regulator_probe(struct udevice *dev)
 {
-	struct tps62360_regulator_pdata *pdata = dev_get_platdata(dev);
+	struct tps62360_regulator_pdata *pdata = dev_get_plat(dev);
 	u8 vsel0;
 	u8 vsel1;
 	int ret;
diff --git a/drivers/power/regulator/tps65910_regulator.c b/drivers/power/regulator/tps65910_regulator.c
index 3c211a1..9fb13d6 100644
--- a/drivers/power/regulator/tps65910_regulator.c
+++ b/drivers/power/regulator/tps65910_regulator.c
@@ -141,7 +141,7 @@
 					const struct regulator_props *rgp)
 {
 	int sel, val, vout;
-	struct tps65910_regulator_pdata *pdata = dev_get_platdata(dev);
+	struct tps65910_regulator_pdata *pdata = dev_get_plat(dev);
 	int vin = pdata->supply;
 
 	val = pmic_reg_read(dev->parent, rgp->reg);
@@ -156,7 +156,7 @@
 
 static int tps65910_ldo_get_value(struct udevice *dev)
 {
-	struct tps65910_regulator_pdata *pdata = dev_get_platdata(dev);
+	struct tps65910_regulator_pdata *pdata = dev_get_plat(dev);
 	int vin;
 
 	if (!pdata)
@@ -194,7 +194,7 @@
 {
 	int val;
 	int sel = 0;
-	struct tps65910_regulator_pdata *pdata = dev_get_platdata(dev);
+	struct tps65910_regulator_pdata *pdata = dev_get_plat(dev);
 
 	do {
 		/* we only allow exact voltage matches */
@@ -216,7 +216,7 @@
 
 static int tps65910_ldo_set_value(struct udevice *dev, int uV)
 {
-	struct tps65910_regulator_pdata *pdata = dev_get_platdata(dev);
+	struct tps65910_regulator_pdata *pdata = dev_get_plat(dev);
 	int vin = pdata->supply;
 
 	switch (pdata->unit) {
@@ -249,7 +249,7 @@
 static int tps65910_get_enable(struct udevice *dev)
 {
 	int reg, val;
-	struct tps65910_regulator_pdata *pdata = dev_get_platdata(dev);
+	struct tps65910_regulator_pdata *pdata = dev_get_plat(dev);
 
 	reg = get_ctrl_reg_from_unit_addr(pdata->unit);
 	if (reg < 0)
@@ -267,7 +267,7 @@
 {
 	int reg;
 	uint clr, set;
-	struct tps65910_regulator_pdata *pdata = dev_get_platdata(dev);
+	struct tps65910_regulator_pdata *pdata = dev_get_plat(dev);
 
 	reg = get_ctrl_reg_from_unit_addr(pdata->unit);
 	if (reg < 0)
@@ -305,7 +305,7 @@
 
 static int tps65910_buck_get_value(struct udevice *dev)
 {
-	struct tps65910_regulator_pdata *pdata = dev_get_platdata(dev);
+	struct tps65910_regulator_pdata *pdata = dev_get_plat(dev);
 
 	switch (pdata->unit) {
 	case TPS65910_UNIT_VIO:
@@ -324,7 +324,7 @@
 	int ret, reg_vdd, gain;
 	int val;
 	struct dm_regulator_uclass_plat *uc_pdata;
-	struct tps65910_regulator_pdata *pdata = dev_get_platdata(dev);
+	struct tps65910_regulator_pdata *pdata = dev_get_plat(dev);
 
 	switch (pdata->unit) {
 	case TPS65910_UNIT_VDD1:
@@ -369,7 +369,7 @@
 
 static int tps65910_buck_set_value(struct udevice *dev, int uV)
 {
-	struct tps65910_regulator_pdata *pdata = dev_get_platdata(dev);
+	struct tps65910_regulator_pdata *pdata = dev_get_plat(dev);
 
 	if (pdata->unit == TPS65910_UNIT_VIO)
 		return tps65910_regulator_set_value(dev, &smps_props_vio, uV);
@@ -380,7 +380,7 @@
 static int tps65910_boost_get_value(struct udevice *dev)
 {
 	int vout;
-	struct tps65910_regulator_pdata *pdata = dev_get_platdata(dev);
+	struct tps65910_regulator_pdata *pdata = dev_get_plat(dev);
 
 	vout = (pdata->supply >= 3000000) ? 5000000 : 0;
 	return vout;
@@ -391,7 +391,7 @@
 	struct udevice *supply;
 	int ret;
 	const char *supply_name;
-	struct tps65910_regulator_pdata *pdata = dev_get_platdata(dev);
+	struct tps65910_regulator_pdata *pdata = dev_get_plat(dev);
 
 	pdata->unit = dev_get_driver_data(dev);
 	if (pdata->unit > TPS65910_UNIT_VMMC)
diff --git a/drivers/ram/imxrt_sdram.c b/drivers/ram/imxrt_sdram.c
index 03d0d88..6a5d96f 100644
--- a/drivers/ram/imxrt_sdram.c
+++ b/drivers/ram/imxrt_sdram.c
@@ -224,7 +224,7 @@
 
 int imxrt_sdram_init(struct udevice *dev)
 {
-	struct imxrt_sdram_params *params = dev_get_platdata(dev);
+	struct imxrt_sdram_params *params = dev_get_plat(dev);
 	struct imxrt_sdram_mux *mux = params->sdram_mux;
 	struct imxrt_sdram_control *ctrl = params->sdram_control;
 	struct imxrt_sdram_timing *time = params->sdram_timing;
@@ -304,7 +304,7 @@
 
 static int imxrt_semc_ofdata_to_platdata(struct udevice *dev)
 {
-	struct imxrt_sdram_params *params = dev_get_platdata(dev);
+	struct imxrt_sdram_params *params = dev_get_plat(dev);
 	ofnode bank_node;
 	u8 bank = 0;
 
@@ -389,7 +389,7 @@
 
 static int imxrt_semc_probe(struct udevice *dev)
 {
-	struct imxrt_sdram_params *params = dev_get_platdata(dev);
+	struct imxrt_sdram_params *params = dev_get_plat(dev);
 	int ret;
 	fdt_addr_t addr;
 
diff --git a/drivers/ram/rockchip/dmc-rk3368.c b/drivers/ram/rockchip/dmc-rk3368.c
index 4e58630..1a19964 100644
--- a/drivers/ram/rockchip/dmc-rk3368.c
+++ b/drivers/ram/rockchip/dmc-rk3368.c
@@ -604,7 +604,7 @@
 static int sdram_col_row_detect(struct udevice *dev)
 {
 	struct dram_info *priv = dev_get_priv(dev);
-	struct rk3368_sdram_params *params = dev_get_platdata(dev);
+	struct rk3368_sdram_params *params = dev_get_plat(dev);
 	struct rk3368_ddr_pctl *pctl = priv->pctl;
 	struct rk3368_msch *msch = priv->msch;
 	const u32 test_pattern = 0x5aa5f00f;
@@ -774,7 +774,7 @@
 {
 	struct dram_info *priv = dev_get_priv(dev);
 	struct rk3368_pmu_grf *pmugrf = priv->pmugrf;
-	struct rk3368_sdram_params *params = dev_get_platdata(dev);
+	struct rk3368_sdram_params *params = dev_get_plat(dev);
 	const struct rk3288_sdram_channel *info = &params->chan;
 	u32 sys_reg = 0;
 	const int chan = 0;
@@ -798,7 +798,7 @@
 static int setup_sdram(struct udevice *dev)
 {
 	struct dram_info *priv = dev_get_priv(dev);
-	struct rk3368_sdram_params *params = dev_get_platdata(dev);
+	struct rk3368_sdram_params *params = dev_get_plat(dev);
 
 	struct rk3368_ddr_pctl *pctl = priv->pctl;
 	struct rk3368_ddrphy *ddrphy = priv->phy;
@@ -884,7 +884,7 @@
 	int ret = 0;
 
 #if !CONFIG_IS_ENABLED(OF_PLATDATA)
-	struct rk3368_sdram_params *plat = dev_get_platdata(dev);
+	struct rk3368_sdram_params *plat = dev_get_plat(dev);
 
 	ret = regmap_init_mem(dev_ofnode(dev), &plat->map);
 	if (ret)
@@ -897,7 +897,7 @@
 #if CONFIG_IS_ENABLED(OF_PLATDATA)
 static int conv_of_platdata(struct udevice *dev)
 {
-	struct rk3368_sdram_params *plat = dev_get_platdata(dev);
+	struct rk3368_sdram_params *plat = dev_get_plat(dev);
 	struct dtd_rockchip_rk3368_dmc *of_plat = &plat->of_plat;
 
 	plat->ddr_freq = of_plat->rockchip_ddr_frequency;
@@ -911,7 +911,7 @@
 static int rk3368_dmc_probe(struct udevice *dev)
 {
 #ifdef CONFIG_TPL_BUILD
-	struct rk3368_sdram_params *plat = dev_get_platdata(dev);
+	struct rk3368_sdram_params *plat = dev_get_plat(dev);
 	struct rk3368_ddr_pctl *pctl;
 	struct rk3368_ddrphy *ddrphy;
 	struct rk3368_cru *cru;
diff --git a/drivers/ram/rockchip/sdram_rk3188.c b/drivers/ram/rockchip/sdram_rk3188.c
index 9b9ef9c..e7ba0b9 100644
--- a/drivers/ram/rockchip/sdram_rk3188.c
+++ b/drivers/ram/rockchip/sdram_rk3188.c
@@ -809,7 +809,7 @@
 static int setup_sdram(struct udevice *dev)
 {
 	struct dram_info *priv = dev_get_priv(dev);
-	struct rk3188_sdram_params *params = dev_get_platdata(dev);
+	struct rk3188_sdram_params *params = dev_get_plat(dev);
 
 	return sdram_init(priv, params);
 }
@@ -817,7 +817,7 @@
 static int rk3188_dmc_ofdata_to_platdata(struct udevice *dev)
 {
 #if !CONFIG_IS_ENABLED(OF_PLATDATA)
-	struct rk3188_sdram_params *params = dev_get_platdata(dev);
+	struct rk3188_sdram_params *params = dev_get_plat(dev);
 	int ret;
 
 	/* rk3188 supports only one-channel */
@@ -855,7 +855,7 @@
 #if CONFIG_IS_ENABLED(OF_PLATDATA)
 static int conv_of_platdata(struct udevice *dev)
 {
-	struct rk3188_sdram_params *plat = dev_get_platdata(dev);
+	struct rk3188_sdram_params *plat = dev_get_plat(dev);
 	struct dtd_rockchip_rk3188_dmc *of_plat = &plat->of_plat;
 	int ret;
 
@@ -879,7 +879,7 @@
 static int rk3188_dmc_probe(struct udevice *dev)
 {
 #ifdef CONFIG_SPL_BUILD
-	struct rk3188_sdram_params *plat = dev_get_platdata(dev);
+	struct rk3188_sdram_params *plat = dev_get_plat(dev);
 	struct regmap *map;
 	struct udevice *dev_clk;
 	int ret;
diff --git a/drivers/ram/rockchip/sdram_rk322x.c b/drivers/ram/rockchip/sdram_rk322x.c
index 459d3a4..763c850 100644
--- a/drivers/ram/rockchip/sdram_rk322x.c
+++ b/drivers/ram/rockchip/sdram_rk322x.c
@@ -716,7 +716,7 @@
 static int rk322x_dmc_ofdata_to_platdata(struct udevice *dev)
 {
 #if !CONFIG_IS_ENABLED(OF_PLATDATA)
-	struct rk322x_sdram_params *params = dev_get_platdata(dev);
+	struct rk322x_sdram_params *params = dev_get_plat(dev);
 	const void *blob = gd->fdt_blob;
 	int node = dev_of_offset(dev);
 	int ret;
@@ -756,7 +756,7 @@
 #if CONFIG_IS_ENABLED(OF_PLATDATA)
 static int conv_of_platdata(struct udevice *dev)
 {
-	struct rk322x_sdram_params *plat = dev_get_platdata(dev);
+	struct rk322x_sdram_params *plat = dev_get_plat(dev);
 	struct dtd_rockchip_rk322x_dmc *of_plat = &plat->of_plat;
 	int ret;
 
@@ -780,7 +780,7 @@
 static int rk322x_dmc_probe(struct udevice *dev)
 {
 #ifdef CONFIG_TPL_BUILD
-	struct rk322x_sdram_params *plat = dev_get_platdata(dev);
+	struct rk322x_sdram_params *plat = dev_get_plat(dev);
 	int ret;
 	struct udevice *dev_clk;
 #endif
diff --git a/drivers/ram/rockchip/sdram_rk3288.c b/drivers/ram/rockchip/sdram_rk3288.c
index e034054..44ad28a 100644
--- a/drivers/ram/rockchip/sdram_rk3288.c
+++ b/drivers/ram/rockchip/sdram_rk3288.c
@@ -956,7 +956,7 @@
 static int setup_sdram(struct udevice *dev)
 {
 	struct dram_info *priv = dev_get_priv(dev);
-	struct rk3288_sdram_params *params = dev_get_platdata(dev);
+	struct rk3288_sdram_params *params = dev_get_plat(dev);
 
 # ifdef CONFIG_ROCKCHIP_FAST_SPL
 	if (priv->is_veyron) {
@@ -974,7 +974,7 @@
 static int rk3288_dmc_ofdata_to_platdata(struct udevice *dev)
 {
 #if !CONFIG_IS_ENABLED(OF_PLATDATA)
-	struct rk3288_sdram_params *params = dev_get_platdata(dev);
+	struct rk3288_sdram_params *params = dev_get_plat(dev);
 	int ret;
 
 	/* Rk3288 supports dual-channel, set default channel num to 2 */
@@ -1017,7 +1017,7 @@
 #if CONFIG_IS_ENABLED(OF_PLATDATA)
 static int conv_of_platdata(struct udevice *dev)
 {
-	struct rk3288_sdram_params *plat = dev_get_platdata(dev);
+	struct rk3288_sdram_params *plat = dev_get_plat(dev);
 	struct dtd_rockchip_rk3288_dmc *of_plat = &plat->of_plat;
 	int ret;
 
@@ -1042,7 +1042,7 @@
 {
 #if defined(CONFIG_TPL_BUILD) || \
 	(!defined(CONFIG_TPL) && defined(CONFIG_SPL_BUILD))
-	struct rk3288_sdram_params *plat = dev_get_platdata(dev);
+	struct rk3288_sdram_params *plat = dev_get_plat(dev);
 	struct udevice *dev_clk;
 	struct regmap *map;
 	int ret;
diff --git a/drivers/ram/rockchip/sdram_rk3328.c b/drivers/ram/rockchip/sdram_rk3328.c
index 634fd41..994a948 100644
--- a/drivers/ram/rockchip/sdram_rk3328.c
+++ b/drivers/ram/rockchip/sdram_rk3328.c
@@ -50,7 +50,7 @@
 #if CONFIG_IS_ENABLED(OF_PLATDATA)
 static int conv_of_platdata(struct udevice *dev)
 {
-	struct rockchip_dmc_plat *plat = dev_get_platdata(dev);
+	struct rockchip_dmc_plat *plat = dev_get_plat(dev);
 	struct dtd_rockchip_rk3328_dmc *dtplat = &plat->dtplat;
 	int ret;
 
@@ -515,7 +515,7 @@
 static int rk3328_dmc_init(struct udevice *dev)
 {
 	struct dram_info *priv = dev_get_priv(dev);
-	struct rockchip_dmc_plat *plat = dev_get_platdata(dev);
+	struct rockchip_dmc_plat *plat = dev_get_plat(dev);
 	int ret;
 
 #if !CONFIG_IS_ENABLED(OF_PLATDATA)
@@ -551,7 +551,7 @@
 static int rk3328_dmc_ofdata_to_platdata(struct udevice *dev)
 {
 #if !CONFIG_IS_ENABLED(OF_PLATDATA)
-	struct rockchip_dmc_plat *plat = dev_get_platdata(dev);
+	struct rockchip_dmc_plat *plat = dev_get_plat(dev);
 	int ret;
 
 	ret = dev_read_u32_array(dev, "rockchip,sdram-params",
diff --git a/drivers/ram/rockchip/sdram_rk3399.c b/drivers/ram/rockchip/sdram_rk3399.c
index b1d1f92..07977bc 100644
--- a/drivers/ram/rockchip/sdram_rk3399.c
+++ b/drivers/ram/rockchip/sdram_rk3399.c
@@ -3014,7 +3014,7 @@
 static int rk3399_dmc_ofdata_to_platdata(struct udevice *dev)
 {
 #if !CONFIG_IS_ENABLED(OF_PLATDATA)
-	struct rockchip_dmc_plat *plat = dev_get_platdata(dev);
+	struct rockchip_dmc_plat *plat = dev_get_plat(dev);
 	int ret;
 
 	ret = dev_read_u32_array(dev, "rockchip,sdram-params",
@@ -3036,7 +3036,7 @@
 #if CONFIG_IS_ENABLED(OF_PLATDATA)
 static int conv_of_platdata(struct udevice *dev)
 {
-	struct rockchip_dmc_plat *plat = dev_get_platdata(dev);
+	struct rockchip_dmc_plat *plat = dev_get_plat(dev);
 	struct dtd_rockchip_rk3399_dmc *dtplat = &plat->dtplat;
 	int ret;
 
@@ -3067,7 +3067,7 @@
 static int rk3399_dmc_init(struct udevice *dev)
 {
 	struct dram_info *priv = dev_get_priv(dev);
-	struct rockchip_dmc_plat *plat = dev_get_platdata(dev);
+	struct rockchip_dmc_plat *plat = dev_get_plat(dev);
 	int ret;
 #if !CONFIG_IS_ENABLED(OF_PLATDATA)
 	struct rk3399_sdram_params *params = &plat->sdram_params;
diff --git a/drivers/ram/sifive/fu540_ddr.c b/drivers/ram/sifive/fu540_ddr.c
index 97e32f3..5a7484c 100644
--- a/drivers/ram/sifive/fu540_ddr.c
+++ b/drivers/ram/sifive/fu540_ddr.c
@@ -230,7 +230,7 @@
 static int fu540_ddr_setup(struct udevice *dev)
 {
 	struct fu540_ddr_info *priv = dev_get_priv(dev);
-	struct sifive_dmc_plat *plat = dev_get_platdata(dev);
+	struct sifive_dmc_plat *plat = dev_get_plat(dev);
 	struct fu540_ddr_params *params = &plat->ddr_params;
 	volatile u32 *denali_ctl =  priv->ctl->denali_ctl;
 	volatile u32 *denali_phy =  priv->phy->denali_phy;
diff --git a/drivers/ram/stm32_sdram.c b/drivers/ram/stm32_sdram.c
index ce3ea03..da25d37 100644
--- a/drivers/ram/stm32_sdram.c
+++ b/drivers/ram/stm32_sdram.c
@@ -161,7 +161,7 @@
 
 int stm32_sdram_init(struct udevice *dev)
 {
-	struct stm32_sdram_params *params = dev_get_platdata(dev);
+	struct stm32_sdram_params *params = dev_get_plat(dev);
 	struct stm32_sdram_control *control;
 	struct stm32_sdram_timing *timing;
 	struct stm32_fmc_regs *regs = params->base;
@@ -258,7 +258,7 @@
 
 static int stm32_fmc_ofdata_to_platdata(struct udevice *dev)
 {
-	struct stm32_sdram_params *params = dev_get_platdata(dev);
+	struct stm32_sdram_params *params = dev_get_plat(dev);
 	struct bank_params *bank_params;
 	struct ofnode_phandle_args args;
 	u32 *syscfg_base;
@@ -355,7 +355,7 @@
 
 static int stm32_fmc_probe(struct udevice *dev)
 {
-	struct stm32_sdram_params *params = dev_get_platdata(dev);
+	struct stm32_sdram_params *params = dev_get_plat(dev);
 	int ret;
 	fdt_addr_t addr;
 
diff --git a/drivers/rng/meson-rng.c b/drivers/rng/meson-rng.c
index e7febc4..1d0b540 100644
--- a/drivers/rng/meson-rng.c
+++ b/drivers/rng/meson-rng.c
@@ -26,7 +26,7 @@
  */
 static int meson_rng_read(struct udevice *dev, void *data, size_t len)
 {
-	struct meson_rng_platdata *pdata = dev_get_platdata(dev);
+	struct meson_rng_platdata *pdata = dev_get_plat(dev);
 	char *buffer = (char *)data;
 
 	while (len) {
@@ -52,7 +52,7 @@
  */
 static int meson_rng_probe(struct udevice *dev)
 {
-	struct meson_rng_platdata *pdata = dev_get_platdata(dev);
+	struct meson_rng_platdata *pdata = dev_get_plat(dev);
 	int err;
 
 	err = clk_enable(&pdata->clk);
@@ -70,7 +70,7 @@
  */
 static int meson_rng_remove(struct udevice *dev)
 {
-	struct meson_rng_platdata *pdata = dev_get_platdata(dev);
+	struct meson_rng_platdata *pdata = dev_get_plat(dev);
 
 	return clk_disable(&pdata->clk);
 }
@@ -83,7 +83,7 @@
  */
 static int meson_rng_ofdata_to_platdata(struct udevice *dev)
 {
-	struct meson_rng_platdata *pdata = dev_get_platdata(dev);
+	struct meson_rng_platdata *pdata = dev_get_plat(dev);
 	int err;
 
 	pdata->base = dev_read_addr(dev);
diff --git a/drivers/rng/stm32mp1_rng.c b/drivers/rng/stm32mp1_rng.c
index abfcbab..34281d3 100644
--- a/drivers/rng/stm32mp1_rng.c
+++ b/drivers/rng/stm32mp1_rng.c
@@ -41,7 +41,7 @@
 	int retval, i;
 	u32 sr, count, reg;
 	size_t increment;
-	struct stm32_rng_platdata *pdata = dev_get_platdata(dev);
+	struct stm32_rng_platdata *pdata = dev_get_plat(dev);
 
 	while (len > 0) {
 		retval = readl_poll_timeout(pdata->base + RNG_SR, sr,
@@ -106,7 +106,7 @@
 
 static int stm32_rng_probe(struct udevice *dev)
 {
-	struct stm32_rng_platdata *pdata = dev_get_platdata(dev);
+	struct stm32_rng_platdata *pdata = dev_get_plat(dev);
 
 	reset_assert(&pdata->rst);
 	udelay(20);
@@ -117,14 +117,14 @@
 
 static int stm32_rng_remove(struct udevice *dev)
 {
-	struct stm32_rng_platdata *pdata = dev_get_platdata(dev);
+	struct stm32_rng_platdata *pdata = dev_get_plat(dev);
 
 	return stm32_rng_cleanup(pdata);
 }
 
 static int stm32_rng_ofdata_to_platdata(struct udevice *dev)
 {
-	struct stm32_rng_platdata *pdata = dev_get_platdata(dev);
+	struct stm32_rng_platdata *pdata = dev_get_plat(dev);
 	int err;
 
 	pdata->base = dev_read_addr(dev);
diff --git a/drivers/rtc/i2c_rtc_emul.c b/drivers/rtc/i2c_rtc_emul.c
index 59043a7..5a2a154 100644
--- a/drivers/rtc/i2c_rtc_emul.c
+++ b/drivers/rtc/i2c_rtc_emul.c
@@ -50,7 +50,7 @@
 long sandbox_i2c_rtc_set_offset(struct udevice *dev, bool use_system_time,
 				int offset)
 {
-	struct sandbox_i2c_rtc_plat_data *plat = dev_get_platdata(dev);
+	struct sandbox_i2c_rtc_plat_data *plat = dev_get_plat(dev);
 	long old_offset;
 
 	old_offset = plat->offset;
@@ -63,7 +63,7 @@
 
 long sandbox_i2c_rtc_get_set_base_time(struct udevice *dev, long base_time)
 {
-	struct sandbox_i2c_rtc_plat_data *plat = dev_get_platdata(dev);
+	struct sandbox_i2c_rtc_plat_data *plat = dev_get_plat(dev);
 	long old_base_time;
 
 	old_base_time = plat->base_time;
@@ -75,7 +75,7 @@
 
 static void reset_time(struct udevice *dev)
 {
-	struct sandbox_i2c_rtc_plat_data *plat = dev_get_platdata(dev);
+	struct sandbox_i2c_rtc_plat_data *plat = dev_get_plat(dev);
 	struct rtc_time now;
 
 	os_localtime(&now);
@@ -86,7 +86,7 @@
 
 static int sandbox_i2c_rtc_get(struct udevice *dev, struct rtc_time *time)
 {
-	struct sandbox_i2c_rtc_plat_data *plat = dev_get_platdata(dev);
+	struct sandbox_i2c_rtc_plat_data *plat = dev_get_plat(dev);
 	struct rtc_time tm_now;
 	long now;
 
@@ -104,7 +104,7 @@
 
 static int sandbox_i2c_rtc_set(struct udevice *dev, const struct rtc_time *time)
 {
-	struct sandbox_i2c_rtc_plat_data *plat = dev_get_platdata(dev);
+	struct sandbox_i2c_rtc_plat_data *plat = dev_get_plat(dev);
 	struct rtc_time tm_now;
 	long now;
 
@@ -122,7 +122,7 @@
 /* Update the current time in the registers */
 static int sandbox_i2c_rtc_prepare_read(struct udevice *emul)
 {
-	struct sandbox_i2c_rtc_plat_data *plat = dev_get_platdata(emul);
+	struct sandbox_i2c_rtc_plat_data *plat = dev_get_plat(emul);
 	struct rtc_time time;
 	int ret;
 
@@ -143,7 +143,7 @@
 
 static int sandbox_i2c_rtc_complete_write(struct udevice *emul)
 {
-	struct sandbox_i2c_rtc_plat_data *plat = dev_get_platdata(emul);
+	struct sandbox_i2c_rtc_plat_data *plat = dev_get_plat(emul);
 	struct rtc_time time;
 	int ret;
 
@@ -165,7 +165,7 @@
 static int sandbox_i2c_rtc_xfer(struct udevice *emul, struct i2c_msg *msg,
 				int nmsgs)
 {
-	struct sandbox_i2c_rtc_plat_data *plat = dev_get_platdata(emul);
+	struct sandbox_i2c_rtc_plat_data *plat = dev_get_plat(emul);
 	uint offset = 0;
 	int ret;
 
diff --git a/drivers/rtc/mvrtc.c b/drivers/rtc/mvrtc.c
index ed057f7..731ce8d 100644
--- a/drivers/rtc/mvrtc.c
+++ b/drivers/rtc/mvrtc.c
@@ -133,7 +133,7 @@
 #ifdef CONFIG_DM_RTC
 static int mv_rtc_get(struct udevice *dev, struct rtc_time *tm)
 {
-	struct mvrtc_pdata *pdata = dev_get_platdata(dev);
+	struct mvrtc_pdata *pdata = dev_get_plat(dev);
 	struct mvrtc_registers *regs = (struct mvrtc_registers *)pdata->iobase;
 
 	return __mv_rtc_get(regs, tm);
@@ -141,7 +141,7 @@
 
 static int mv_rtc_set(struct udevice *dev, const struct rtc_time *tm)
 {
-	struct mvrtc_pdata *pdata = dev_get_platdata(dev);
+	struct mvrtc_pdata *pdata = dev_get_plat(dev);
 	struct mvrtc_registers *regs = (struct mvrtc_registers *)pdata->iobase;
 
 	return __mv_rtc_set(regs, tm);
@@ -149,7 +149,7 @@
 
 static int mv_rtc_reset(struct udevice *dev)
 {
-	struct mvrtc_pdata *pdata = dev_get_platdata(dev);
+	struct mvrtc_pdata *pdata = dev_get_plat(dev);
 	struct mvrtc_registers *regs = (struct mvrtc_registers *)pdata->iobase;
 
 	__mv_rtc_reset(regs);
@@ -170,7 +170,7 @@
 
 static int mv_rtc_ofdata_to_platdata(struct udevice *dev)
 {
-	struct mvrtc_pdata *pdata = dev_get_platdata(dev);
+	struct mvrtc_pdata *pdata = dev_get_plat(dev);
 
 	pdata->iobase = dev_read_addr(dev);
 	return 0;
diff --git a/drivers/rtc/pl031.c b/drivers/rtc/pl031.c
index 93d5a6a..df79c1f 100644
--- a/drivers/rtc/pl031.c
+++ b/drivers/rtc/pl031.c
@@ -35,14 +35,14 @@
 
 static inline u32 pl031_read_reg(struct udevice *dev, int reg)
 {
-	struct pl031_platdata *pdata = dev_get_platdata(dev);
+	struct pl031_platdata *pdata = dev_get_plat(dev);
 
 	return readl(pdata->base + reg);
 }
 
 static inline u32 pl031_write_reg(struct udevice *dev, int reg, u32 value)
 {
-	struct pl031_platdata *pdata = dev_get_platdata(dev);
+	struct pl031_platdata *pdata = dev_get_plat(dev);
 
 	return writel(value, pdata->base + reg);
 }
@@ -124,7 +124,7 @@
 
 static int pl031_ofdata_to_platdata(struct udevice *dev)
 {
-	struct pl031_platdata *pdata = dev_get_platdata(dev);
+	struct pl031_platdata *pdata = dev_get_plat(dev);
 
 	pdata->base = dev_read_addr(dev);
 
diff --git a/drivers/serial/altera_jtag_uart.c b/drivers/serial/altera_jtag_uart.c
index 01dc41e..e855ca4 100644
--- a/drivers/serial/altera_jtag_uart.c
+++ b/drivers/serial/altera_jtag_uart.c
@@ -93,7 +93,7 @@
 
 static int altera_jtaguart_ofdata_to_platdata(struct udevice *dev)
 {
-	struct altera_jtaguart_platdata *plat = dev_get_platdata(dev);
+	struct altera_jtaguart_platdata *plat = dev_get_plat(dev);
 
 	plat->regs = map_physmem(dev_read_addr(dev),
 				 sizeof(struct altera_jtaguart_regs),
diff --git a/drivers/serial/altera_uart.c b/drivers/serial/altera_uart.c
index 68169d5..8d27382 100644
--- a/drivers/serial/altera_uart.c
+++ b/drivers/serial/altera_uart.c
@@ -85,7 +85,7 @@
 
 static int altera_uart_ofdata_to_platdata(struct udevice *dev)
 {
-	struct altera_uart_platdata *plat = dev_get_platdata(dev);
+	struct altera_uart_platdata *plat = dev_get_plat(dev);
 
 	plat->regs = map_physmem(dev_read_addr(dev),
 				 sizeof(struct altera_uart_regs),
diff --git a/drivers/serial/lpc32xx_hsuart.c b/drivers/serial/lpc32xx_hsuart.c
index 6b7bf3f..4e34643 100644
--- a/drivers/serial/lpc32xx_hsuart.c
+++ b/drivers/serial/lpc32xx_hsuart.c
@@ -85,7 +85,7 @@
 
 static int lpc32xx_hsuart_probe(struct udevice *dev)
 {
-	struct lpc32xx_hsuart_platdata *plat = dev_get_platdata(dev);
+	struct lpc32xx_hsuart_platdata *plat = dev_get_plat(dev);
 	struct lpc32xx_hsuart_priv *priv = dev_get_priv(dev);
 
 	priv->hsuart = (struct hsuart_regs *)plat->base;
diff --git a/drivers/serial/ns16550.c b/drivers/serial/ns16550.c
index 88a486a..6bc8c99 100644
--- a/drivers/serial/ns16550.c
+++ b/drivers/serial/ns16550.c
@@ -519,7 +519,7 @@
 	if (!ret)
 		reset_deassert_bulk(&reset_bulk);
 
-	com_port->plat = dev_get_platdata(dev);
+	com_port->plat = dev_get_plat(dev);
 	NS16550_init(com_port, -1);
 
 	return 0;
diff --git a/drivers/serial/serial_arc.c b/drivers/serial/serial_arc.c
index 0c7418f..8964fa7 100644
--- a/drivers/serial/serial_arc.c
+++ b/drivers/serial/serial_arc.c
@@ -111,7 +111,7 @@
 
 static int arc_serial_ofdata_to_platdata(struct udevice *dev)
 {
-	struct arc_serial_platdata *plat = dev_get_platdata(dev);
+	struct arc_serial_platdata *plat = dev_get_plat(dev);
 	DECLARE_GLOBAL_DATA_PTR;
 
 	plat->reg = dev_read_addr_ptr(dev);
diff --git a/drivers/serial/serial_bcm283x_mu.c b/drivers/serial/serial_bcm283x_mu.c
index d11bdd4..1d64496 100644
--- a/drivers/serial/serial_bcm283x_mu.c
+++ b/drivers/serial/serial_bcm283x_mu.c
@@ -55,7 +55,7 @@
 
 static int bcm283x_mu_serial_setbrg(struct udevice *dev, int baudrate)
 {
-	struct bcm283x_mu_serial_platdata *plat = dev_get_platdata(dev);
+	struct bcm283x_mu_serial_platdata *plat = dev_get_plat(dev);
 	struct bcm283x_mu_priv *priv = dev_get_priv(dev);
 	struct bcm283x_mu_regs *regs = priv->regs;
 	u32 divider;
@@ -158,7 +158,7 @@
 
 static int bcm283x_mu_serial_probe(struct udevice *dev)
 {
-	struct bcm283x_mu_serial_platdata *plat = dev_get_platdata(dev);
+	struct bcm283x_mu_serial_platdata *plat = dev_get_plat(dev);
 	struct bcm283x_mu_priv *priv = dev_get_priv(dev);
 	fdt_addr_t addr;
 
diff --git a/drivers/serial/serial_bcm283x_pl011.c b/drivers/serial/serial_bcm283x_pl011.c
index 8d2f249..6d7a87c 100644
--- a/drivers/serial/serial_bcm283x_pl011.c
+++ b/drivers/serial/serial_bcm283x_pl011.c
@@ -35,7 +35,7 @@
 
 static int bcm283x_pl011_serial_probe(struct udevice *dev)
 {
-	struct pl01x_serial_platdata *plat = dev_get_platdata(dev);
+	struct pl01x_serial_platdata *plat = dev_get_plat(dev);
 	int ret;
 
 	/* Don't spawn the device if it's not muxed */
diff --git a/drivers/serial/serial_coreboot.c b/drivers/serial/serial_coreboot.c
index 17072e4..dba0ae4 100644
--- a/drivers/serial/serial_coreboot.c
+++ b/drivers/serial/serial_coreboot.c
@@ -13,7 +13,7 @@
 
 static int coreboot_ofdata_to_platdata(struct udevice *dev)
 {
-	struct ns16550_platdata *plat = dev_get_platdata(dev);
+	struct ns16550_platdata *plat = dev_get_plat(dev);
 	struct cb_serial *cb_info = lib_sysinfo.serial;
 
 	plat->base = cb_info->baseaddr;
diff --git a/drivers/serial/serial_intel_mid.c b/drivers/serial/serial_intel_mid.c
index 26c6867..2ee7e2d 100644
--- a/drivers/serial/serial_intel_mid.c
+++ b/drivers/serial/serial_intel_mid.c
@@ -33,7 +33,7 @@
 
 static int mid_serial_probe(struct udevice *dev)
 {
-	struct ns16550_platdata *plat = dev_get_platdata(dev);
+	struct ns16550_platdata *plat = dev_get_plat(dev);
 
 	/*
 	 * Initialize fractional divider correctly for Intel Edison
diff --git a/drivers/serial/serial_lpuart.c b/drivers/serial/serial_lpuart.c
index e6e1b1d..e6b73e1 100644
--- a/drivers/serial/serial_lpuart.c
+++ b/drivers/serial/serial_lpuart.c
@@ -146,7 +146,7 @@
 static void _lpuart_serial_setbrg(struct udevice *dev,
 				  int baudrate)
 {
-	struct lpuart_serial_platdata *plat = dev_get_platdata(dev);
+	struct lpuart_serial_platdata *plat = dev_get_plat(dev);
 	struct lpuart_fsl *base = plat->reg;
 	u32 clk;
 	u16 sbr;
@@ -206,7 +206,7 @@
  */
 static int _lpuart_serial_init(struct udevice *dev)
 {
-	struct lpuart_serial_platdata *plat = dev_get_platdata(dev);
+	struct lpuart_serial_platdata *plat = dev_get_plat(dev);
 	struct lpuart_fsl *base = (struct lpuart_fsl *)plat->reg;
 	u8 ctrl;
 
@@ -235,7 +235,7 @@
 static void _lpuart32_serial_setbrg_7ulp(struct udevice *dev,
 					 int baudrate)
 {
-	struct lpuart_serial_platdata *plat = dev_get_platdata(dev);
+	struct lpuart_serial_platdata *plat = dev_get_plat(dev);
 	struct lpuart_fsl_reg32 *base = plat->reg;
 	u32 sbr, osr, baud_diff, tmp_osr, tmp_sbr, tmp_diff, tmp;
 	u32 clk;
@@ -304,7 +304,7 @@
 static void _lpuart32_serial_setbrg(struct udevice *dev,
 				    int baudrate)
 {
-	struct lpuart_serial_platdata *plat = dev_get_platdata(dev);
+	struct lpuart_serial_platdata *plat = dev_get_plat(dev);
 	struct lpuart_fsl_reg32 *base = plat->reg;
 	u32 clk;
 	u32 sbr;
@@ -386,7 +386,7 @@
  */
 static int _lpuart32_serial_init(struct udevice *dev)
 {
-	struct lpuart_serial_platdata *plat = dev_get_platdata(dev);
+	struct lpuart_serial_platdata *plat = dev_get_plat(dev);
 	struct lpuart_fsl_reg32 *base = (struct lpuart_fsl_reg32 *)plat->reg;
 	u32 val, tx_fifo_size;
 
@@ -428,7 +428,7 @@
 
 static int lpuart_serial_setbrg(struct udevice *dev, int baudrate)
 {
-	struct lpuart_serial_platdata *plat = dev_get_platdata(dev);
+	struct lpuart_serial_platdata *plat = dev_get_plat(dev);
 
 	if (is_lpuart32(dev)) {
 		if (plat->devtype == DEV_MX7ULP || plat->devtype == DEV_IMX8 ||
diff --git a/drivers/serial/serial_mcf.c b/drivers/serial/serial_mcf.c
index 40f0b01..cddebc3 100644
--- a/drivers/serial/serial_mcf.c
+++ b/drivers/serial/serial_mcf.c
@@ -142,7 +142,7 @@
 
 static int coldfire_ofdata_to_platdata(struct udevice *dev)
 {
-	struct coldfire_serial_platdata *plat = dev_get_platdata(dev);
+	struct coldfire_serial_platdata *plat = dev_get_plat(dev);
 	fdt_addr_t addr_base;
 
 	addr_base = dev_read_addr(dev);
diff --git a/drivers/serial/serial_mvebu_a3700.c b/drivers/serial/serial_mvebu_a3700.c
index 690b7c6..b1da874 100644
--- a/drivers/serial/serial_mvebu_a3700.c
+++ b/drivers/serial/serial_mvebu_a3700.c
@@ -32,7 +32,7 @@
 
 static int mvebu_serial_putc(struct udevice *dev, const char ch)
 {
-	struct mvebu_platdata *plat = dev_get_platdata(dev);
+	struct mvebu_platdata *plat = dev_get_plat(dev);
 	void __iomem *base = plat->base;
 
 	while (readl(base + UART_STATUS_REG) & UART_STATUS_TXFIFO_FULL)
@@ -45,7 +45,7 @@
 
 static int mvebu_serial_getc(struct udevice *dev)
 {
-	struct mvebu_platdata *plat = dev_get_platdata(dev);
+	struct mvebu_platdata *plat = dev_get_plat(dev);
 	void __iomem *base = plat->base;
 
 	while (!(readl(base + UART_STATUS_REG) & UART_STATUS_RX_RDY))
@@ -56,7 +56,7 @@
 
 static int mvebu_serial_pending(struct udevice *dev, bool input)
 {
-	struct mvebu_platdata *plat = dev_get_platdata(dev);
+	struct mvebu_platdata *plat = dev_get_plat(dev);
 	void __iomem *base = plat->base;
 
 	if (readl(base + UART_STATUS_REG) & UART_STATUS_RX_RDY)
@@ -67,7 +67,7 @@
 
 static int mvebu_serial_setbrg(struct udevice *dev, int baudrate)
 {
-	struct mvebu_platdata *plat = dev_get_platdata(dev);
+	struct mvebu_platdata *plat = dev_get_plat(dev);
 	void __iomem *base = plat->base;
 
 	/*
@@ -87,7 +87,7 @@
 
 static int mvebu_serial_probe(struct udevice *dev)
 {
-	struct mvebu_platdata *plat = dev_get_platdata(dev);
+	struct mvebu_platdata *plat = dev_get_plat(dev);
 	void __iomem *base = plat->base;
 
 	/* reset FIFOs */
@@ -102,7 +102,7 @@
 
 static int mvebu_serial_ofdata_to_platdata(struct udevice *dev)
 {
-	struct mvebu_platdata *plat = dev_get_platdata(dev);
+	struct mvebu_platdata *plat = dev_get_plat(dev);
 
 	plat->base = dev_read_addr_ptr(dev);
 
diff --git a/drivers/serial/serial_pl01x.c b/drivers/serial/serial_pl01x.c
index 3a876fe..5ca1c07 100644
--- a/drivers/serial/serial_pl01x.c
+++ b/drivers/serial/serial_pl01x.c
@@ -281,7 +281,7 @@
 
 int pl01x_serial_setbrg(struct udevice *dev, int baudrate)
 {
-	struct pl01x_serial_platdata *plat = dev_get_platdata(dev);
+	struct pl01x_serial_platdata *plat = dev_get_plat(dev);
 	struct pl01x_priv *priv = dev_get_priv(dev);
 
 	if (!plat->skip_init) {
@@ -294,7 +294,7 @@
 
 int pl01x_serial_probe(struct udevice *dev)
 {
-	struct pl01x_serial_platdata *plat = dev_get_platdata(dev);
+	struct pl01x_serial_platdata *plat = dev_get_plat(dev);
 	struct pl01x_priv *priv = dev_get_priv(dev);
 
 	priv->regs = (struct pl01x_regs *)plat->base;
@@ -350,7 +350,7 @@
 
 int pl01x_serial_ofdata_to_platdata(struct udevice *dev)
 {
-	struct pl01x_serial_platdata *plat = dev_get_platdata(dev);
+	struct pl01x_serial_platdata *plat = dev_get_plat(dev);
 	struct clk clk;
 	fdt_addr_t addr;
 	int ret;
diff --git a/drivers/serial/serial_rockchip.c b/drivers/serial/serial_rockchip.c
index e00df4b..930103a 100644
--- a/drivers/serial/serial_rockchip.c
+++ b/drivers/serial/serial_rockchip.c
@@ -27,7 +27,7 @@
 
 static int rockchip_serial_probe(struct udevice *dev)
 {
-	struct rockchip_uart_platdata *plat = dev_get_platdata(dev);
+	struct rockchip_uart_platdata *plat = dev_get_plat(dev);
 
 	/* Create some new platform data for the standard driver */
 	plat->plat.base = plat->dtplat.reg[0];
diff --git a/drivers/serial/serial_sh.c b/drivers/serial/serial_sh.c
index 0cac2b9..d1f24bb 100644
--- a/drivers/serial/serial_sh.c
+++ b/drivers/serial/serial_sh.c
@@ -169,7 +169,7 @@
 
 static int sh_serial_setbrg(struct udevice *dev, int baudrate)
 {
-	struct sh_serial_platdata *plat = dev_get_platdata(dev);
+	struct sh_serial_platdata *plat = dev_get_plat(dev);
 	struct uart_port *priv = dev_get_priv(dev);
 
 	sh_serial_setbrg_generic(priv, plat->clk, baudrate);
@@ -179,7 +179,7 @@
 
 static int sh_serial_probe(struct udevice *dev)
 {
-	struct sh_serial_platdata *plat = dev_get_platdata(dev);
+	struct sh_serial_platdata *plat = dev_get_plat(dev);
 	struct uart_port *priv = dev_get_priv(dev);
 
 	priv->membase	= (unsigned char *)plat->base;
@@ -209,7 +209,7 @@
 
 static int sh_serial_ofdata_to_platdata(struct udevice *dev)
 {
-	struct sh_serial_platdata *plat = dev_get_platdata(dev);
+	struct sh_serial_platdata *plat = dev_get_plat(dev);
 	struct clk sh_serial_clk;
 	fdt_addr_t addr;
 	int ret;
diff --git a/drivers/serial/serial_sifive.c b/drivers/serial/serial_sifive.c
index 276f090..e9d4d91 100644
--- a/drivers/serial/serial_sifive.c
+++ b/drivers/serial/serial_sifive.c
@@ -105,7 +105,7 @@
 {
 	int ret;
 	struct clk clk;
-	struct sifive_uart_platdata *plat = dev_get_platdata(dev);
+	struct sifive_uart_platdata *plat = dev_get_plat(dev);
 	u32 clock = 0;
 
 	ret = clk_get_by_index(dev, 0, &clk);
@@ -131,7 +131,7 @@
 
 static int sifive_serial_probe(struct udevice *dev)
 {
-	struct sifive_uart_platdata *plat = dev_get_platdata(dev);
+	struct sifive_uart_platdata *plat = dev_get_plat(dev);
 
 	/* No need to reinitialize the UART after relocation */
 	if (gd->flags & GD_FLG_RELOC)
@@ -145,7 +145,7 @@
 static int sifive_serial_getc(struct udevice *dev)
 {
 	int c;
-	struct sifive_uart_platdata *plat = dev_get_platdata(dev);
+	struct sifive_uart_platdata *plat = dev_get_plat(dev);
 	struct uart_sifive *regs = plat->regs;
 
 	while ((c = _sifive_serial_getc(regs)) == -EAGAIN) ;
@@ -156,7 +156,7 @@
 static int sifive_serial_putc(struct udevice *dev, const char ch)
 {
 	int rc;
-	struct sifive_uart_platdata *plat = dev_get_platdata(dev);
+	struct sifive_uart_platdata *plat = dev_get_plat(dev);
 
 	while ((rc = _sifive_serial_putc(plat->regs, ch)) == -EAGAIN) ;
 
@@ -165,7 +165,7 @@
 
 static int sifive_serial_pending(struct udevice *dev, bool input)
 {
-	struct sifive_uart_platdata *plat = dev_get_platdata(dev);
+	struct sifive_uart_platdata *plat = dev_get_plat(dev);
 	struct uart_sifive *regs = plat->regs;
 
 	if (input)
@@ -176,7 +176,7 @@
 
 static int sifive_serial_ofdata_to_platdata(struct udevice *dev)
 {
-	struct sifive_uart_platdata *plat = dev_get_platdata(dev);
+	struct sifive_uart_platdata *plat = dev_get_plat(dev);
 
 	plat->regs = (struct uart_sifive *)dev_read_addr(dev);
 	if (IS_ERR(plat->regs))
diff --git a/drivers/serial/serial_stm32.c b/drivers/serial/serial_stm32.c
index 210b5b5..9b56b24 100644
--- a/drivers/serial/serial_stm32.c
+++ b/drivers/serial/serial_stm32.c
@@ -44,7 +44,7 @@
 
 static int stm32_serial_setbrg(struct udevice *dev, int baudrate)
 {
-	struct stm32x7_serial_platdata *plat = dev_get_platdata(dev);
+	struct stm32x7_serial_platdata *plat = dev_get_plat(dev);
 
 	_stm32_serial_setbrg(plat->base, plat->uart_info,
 			     plat->clock_rate, baudrate);
@@ -54,7 +54,7 @@
 
 static int stm32_serial_setconfig(struct udevice *dev, uint serial_config)
 {
-	struct stm32x7_serial_platdata *plat = dev_get_platdata(dev);
+	struct stm32x7_serial_platdata *plat = dev_get_plat(dev);
 	bool stm32f4 = plat->uart_info->stm32f4;
 	u8 uart_enable_bit = plat->uart_info->uart_enable_bit;
 	u32 cr1 = plat->base + CR1_OFFSET(stm32f4);
@@ -102,7 +102,7 @@
 
 static int stm32_serial_getc(struct udevice *dev)
 {
-	struct stm32x7_serial_platdata *plat = dev_get_platdata(dev);
+	struct stm32x7_serial_platdata *plat = dev_get_plat(dev);
 	bool stm32f4 = plat->uart_info->stm32f4;
 	fdt_addr_t base = plat->base;
 	u32 isr = readl(base + ISR_OFFSET(stm32f4));
@@ -139,14 +139,14 @@
 
 static int stm32_serial_putc(struct udevice *dev, const char c)
 {
-	struct stm32x7_serial_platdata *plat = dev_get_platdata(dev);
+	struct stm32x7_serial_platdata *plat = dev_get_plat(dev);
 
 	return _stm32_serial_putc(plat->base, plat->uart_info, c);
 }
 
 static int stm32_serial_pending(struct udevice *dev, bool input)
 {
-	struct stm32x7_serial_platdata *plat = dev_get_platdata(dev);
+	struct stm32x7_serial_platdata *plat = dev_get_plat(dev);
 	bool stm32f4 = plat->uart_info->stm32f4;
 	fdt_addr_t base = plat->base;
 
@@ -175,7 +175,7 @@
 
 static int stm32_serial_probe(struct udevice *dev)
 {
-	struct stm32x7_serial_platdata *plat = dev_get_platdata(dev);
+	struct stm32x7_serial_platdata *plat = dev_get_plat(dev);
 	struct clk clk;
 	struct reset_ctl reset;
 	int ret;
@@ -219,7 +219,7 @@
 
 static int stm32_serial_ofdata_to_platdata(struct udevice *dev)
 {
-	struct stm32x7_serial_platdata *plat = dev_get_platdata(dev);
+	struct stm32x7_serial_platdata *plat = dev_get_plat(dev);
 
 	plat->base = dev_read_addr(dev);
 	if (plat->base == FDT_ADDR_T_NONE)
diff --git a/drivers/serial/serial_xuartlite.c b/drivers/serial/serial_xuartlite.c
index eb76c78..ea90fdb 100644
--- a/drivers/serial/serial_xuartlite.c
+++ b/drivers/serial/serial_xuartlite.c
@@ -54,7 +54,7 @@
 
 static int uartlite_serial_putc(struct udevice *dev, const char ch)
 {
-	struct uartlite_platdata *plat = dev_get_platdata(dev);
+	struct uartlite_platdata *plat = dev_get_plat(dev);
 	struct uartlite *regs = plat->regs;
 
 	if (uart_in32(&regs->status) & SR_TX_FIFO_FULL)
@@ -67,7 +67,7 @@
 
 static int uartlite_serial_getc(struct udevice *dev)
 {
-	struct uartlite_platdata *plat = dev_get_platdata(dev);
+	struct uartlite_platdata *plat = dev_get_plat(dev);
 	struct uartlite *regs = plat->regs;
 
 	if (!(uart_in32(&regs->status) & SR_RX_FIFO_VALID_DATA))
@@ -78,7 +78,7 @@
 
 static int uartlite_serial_pending(struct udevice *dev, bool input)
 {
-	struct uartlite_platdata *plat = dev_get_platdata(dev);
+	struct uartlite_platdata *plat = dev_get_plat(dev);
 	struct uartlite *regs = plat->regs;
 
 	if (input)
@@ -89,7 +89,7 @@
 
 static int uartlite_serial_probe(struct udevice *dev)
 {
-	struct uartlite_platdata *plat = dev_get_platdata(dev);
+	struct uartlite_platdata *plat = dev_get_plat(dev);
 	struct uartlite *regs = plat->regs;
 	int ret;
 
@@ -108,7 +108,7 @@
 
 static int uartlite_serial_ofdata_to_platdata(struct udevice *dev)
 {
-	struct uartlite_platdata *plat = dev_get_platdata(dev);
+	struct uartlite_platdata *plat = dev_get_plat(dev);
 
 	plat->regs = dev_read_addr_ptr(dev);
 
diff --git a/drivers/serial/serial_zynq.c b/drivers/serial/serial_zynq.c
index 7984b61..1bcdf8c 100644
--- a/drivers/serial/serial_zynq.c
+++ b/drivers/serial/serial_zynq.c
@@ -107,7 +107,7 @@
 
 static int zynq_serial_setbrg(struct udevice *dev, int baudrate)
 {
-	struct zynq_uart_platdata *plat = dev_get_platdata(dev);
+	struct zynq_uart_platdata *plat = dev_get_plat(dev);
 	unsigned long clock;
 
 	int ret;
@@ -139,7 +139,7 @@
 
 static int zynq_serial_probe(struct udevice *dev)
 {
-	struct zynq_uart_platdata *plat = dev_get_platdata(dev);
+	struct zynq_uart_platdata *plat = dev_get_plat(dev);
 	struct uart_zynq *regs = plat->regs;
 	u32 val;
 
@@ -155,7 +155,7 @@
 
 static int zynq_serial_getc(struct udevice *dev)
 {
-	struct zynq_uart_platdata *plat = dev_get_platdata(dev);
+	struct zynq_uart_platdata *plat = dev_get_plat(dev);
 	struct uart_zynq *regs = plat->regs;
 
 	if (readl(&regs->channel_sts) & ZYNQ_UART_SR_RXEMPTY)
@@ -166,14 +166,14 @@
 
 static int zynq_serial_putc(struct udevice *dev, const char ch)
 {
-	struct zynq_uart_platdata *plat = dev_get_platdata(dev);
+	struct zynq_uart_platdata *plat = dev_get_plat(dev);
 
 	return _uart_zynq_serial_putc(plat->regs, ch);
 }
 
 static int zynq_serial_pending(struct udevice *dev, bool input)
 {
-	struct zynq_uart_platdata *plat = dev_get_platdata(dev);
+	struct zynq_uart_platdata *plat = dev_get_plat(dev);
 	struct uart_zynq *regs = plat->regs;
 
 	if (input)
@@ -184,7 +184,7 @@
 
 static int zynq_serial_ofdata_to_platdata(struct udevice *dev)
 {
-	struct zynq_uart_platdata *plat = dev_get_platdata(dev);
+	struct zynq_uart_platdata *plat = dev_get_plat(dev);
 
 	plat->regs = (struct uart_zynq *)dev_read_addr(dev);
 	if (IS_ERR(plat->regs))
diff --git a/drivers/soc/soc_ti_k3.c b/drivers/soc/soc_ti_k3.c
index 2ea9162..cd7cf5b 100644
--- a/drivers/soc/soc_ti_k3.c
+++ b/drivers/soc/soc_ti_k3.c
@@ -74,7 +74,7 @@
 
 static int soc_ti_k3_get_family(struct udevice *dev, char *buf, int size)
 {
-	struct soc_ti_k3_platdata *plat = dev_get_platdata(dev);
+	struct soc_ti_k3_platdata *plat = dev_get_plat(dev);
 
 	snprintf(buf, size, "%s", plat->family);
 
@@ -83,7 +83,7 @@
 
 static int soc_ti_k3_get_revision(struct udevice *dev, char *buf, int size)
 {
-	struct soc_ti_k3_platdata *plat = dev_get_platdata(dev);
+	struct soc_ti_k3_platdata *plat = dev_get_plat(dev);
 
 	snprintf(buf, size, "SR%s", plat->revision);
 
@@ -97,7 +97,7 @@
 
 int soc_ti_k3_probe(struct udevice *dev)
 {
-	struct soc_ti_k3_platdata *plat = dev_get_platdata(dev);
+	struct soc_ti_k3_platdata *plat = dev_get_plat(dev);
 	u32 idreg;
 	void *idreg_addr;
 
diff --git a/drivers/spi/altera_spi.c b/drivers/spi/altera_spi.c
index b7da09f..c874151 100644
--- a/drivers/spi/altera_spi.c
+++ b/drivers/spi/altera_spi.c
@@ -161,7 +161,7 @@
 
 static int altera_spi_probe(struct udevice *bus)
 {
-	struct altera_spi_platdata *plat = dev_get_platdata(bus);
+	struct altera_spi_platdata *plat = dev_get_plat(bus);
 	struct altera_spi_priv *priv = dev_get_priv(bus);
 
 	priv->regs = plat->regs;
@@ -171,7 +171,7 @@
 
 static int altera_spi_ofdata_to_platdata(struct udevice *bus)
 {
-	struct altera_spi_platdata *plat = dev_get_platdata(bus);
+	struct altera_spi_platdata *plat = dev_get_plat(bus);
 
 	plat->regs = map_physmem(dev_read_addr(bus),
 				 sizeof(struct altera_spi_regs),
diff --git a/drivers/spi/atmel_spi.c b/drivers/spi/atmel_spi.c
index a192f93..9795972 100644
--- a/drivers/spi/atmel_spi.c
+++ b/drivers/spi/atmel_spi.c
@@ -121,7 +121,7 @@
 static int atmel_spi_claim_bus(struct udevice *dev)
 {
 	struct udevice *bus = dev_get_parent(dev);
-	struct atmel_spi_platdata *bus_plat = dev_get_platdata(bus);
+	struct atmel_spi_platdata *bus_plat = dev_get_plat(bus);
 	struct atmel_spi_priv *priv = dev_get_priv(bus);
 	struct dm_spi_slave_platdata *slave_plat = dev_get_parent_plat(dev);
 	struct at91_spi *reg_base = bus_plat->regs;
@@ -161,7 +161,7 @@
 static int atmel_spi_release_bus(struct udevice *dev)
 {
 	struct udevice *bus = dev_get_parent(dev);
-	struct atmel_spi_platdata *bus_plat = dev_get_platdata(bus);
+	struct atmel_spi_platdata *bus_plat = dev_get_plat(bus);
 
 	writel(ATMEL_SPI_CR_SPIDIS, &bus_plat->regs->cr);
 
@@ -202,7 +202,7 @@
 			  const void *dout, void *din, unsigned long flags)
 {
 	struct udevice *bus = dev_get_parent(dev);
-	struct atmel_spi_platdata *bus_plat = dev_get_platdata(bus);
+	struct atmel_spi_platdata *bus_plat = dev_get_plat(bus);
 	struct at91_spi *reg_base = bus_plat->regs;
 
 	u32 len_tx, len_rx, len;
@@ -344,7 +344,7 @@
 
 static int atmel_spi_probe(struct udevice *bus)
 {
-	struct atmel_spi_platdata *bus_plat = dev_get_platdata(bus);
+	struct atmel_spi_platdata *bus_plat = dev_get_plat(bus);
 	int ret;
 
 	ret = atmel_spi_enable_clk(bus);
diff --git a/drivers/spi/bcmstb_spi.c b/drivers/spi/bcmstb_spi.c
index da87476..83ca649 100644
--- a/drivers/spi/bcmstb_spi.c
+++ b/drivers/spi/bcmstb_spi.c
@@ -96,7 +96,7 @@
 
 static int bcmstb_spi_ofdata_to_platdata(struct udevice *bus)
 {
-	struct bcmstb_spi_platdata *plat = dev_get_platdata(bus);
+	struct bcmstb_spi_platdata *plat = dev_get_plat(bus);
 	const void *fdt = gd->fdt_blob;
 	int node = dev_of_offset(bus);
 	int ret = 0;
@@ -159,7 +159,7 @@
 
 static int bcmstb_spi_probe(struct udevice *bus)
 {
-	struct bcmstb_spi_platdata *plat = dev_get_platdata(bus);
+	struct bcmstb_spi_platdata *plat = dev_get_plat(bus);
 	struct bcmstb_spi_priv *priv = dev_get_priv(bus);
 
 	priv->regs = plat->base[HIF_MSPI];
diff --git a/drivers/spi/cf_spi.c b/drivers/spi/cf_spi.c
index 8c1a62e..ce0584d 100644
--- a/drivers/spi/cf_spi.c
+++ b/drivers/spi/cf_spi.c
@@ -343,7 +343,7 @@
 
 static int coldfire_spi_probe(struct udevice *bus)
 {
-	struct coldfire_spi_platdata *plat = dev_get_platdata(bus);
+	struct coldfire_spi_platdata *plat = dev_get_plat(bus);
 	struct coldfire_spi_priv *cfspi = dev_get_priv(bus);
 	struct dspi *dspi = cfspi->regs;
 	int i;
diff --git a/drivers/spi/designware_spi.c b/drivers/spi/designware_spi.c
index 390fbcf..9906909 100644
--- a/drivers/spi/designware_spi.c
+++ b/drivers/spi/designware_spi.c
@@ -263,7 +263,7 @@
 
 static int dw_spi_probe(struct udevice *bus)
 {
-	struct dw_spi_platdata *plat = dev_get_platdata(bus);
+	struct dw_spi_platdata *plat = dev_get_plat(bus);
 	struct dw_spi_priv *priv = dev_get_priv(bus);
 	int ret;
 
diff --git a/drivers/spi/exynos_spi.c b/drivers/spi/exynos_spi.c
index 2d1602c..0473736 100644
--- a/drivers/spi/exynos_spi.c
+++ b/drivers/spi/exynos_spi.c
@@ -213,7 +213,7 @@
 static void spi_cs_activate(struct udevice *dev)
 {
 	struct udevice *bus = dev->parent;
-	struct exynos_spi_platdata *pdata = dev_get_platdata(bus);
+	struct exynos_spi_platdata *pdata = dev_get_plat(bus);
 	struct exynos_spi_priv *priv = dev_get_priv(bus);
 
 	/* If it's too soon to do another transaction, wait */
@@ -239,7 +239,7 @@
 static void spi_cs_deactivate(struct udevice *dev)
 {
 	struct udevice *bus = dev->parent;
-	struct exynos_spi_platdata *pdata = dev_get_platdata(bus);
+	struct exynos_spi_platdata *pdata = dev_get_plat(bus);
 	struct exynos_spi_priv *priv = dev_get_priv(bus);
 
 	setbits_le32(&priv->regs->cs_reg, SPI_SLAVE_SIG_INACT);
@@ -280,7 +280,7 @@
 
 static int exynos_spi_probe(struct udevice *bus)
 {
-	struct exynos_spi_platdata *plat = dev_get_platdata(bus);
+	struct exynos_spi_platdata *plat = dev_get_plat(bus);
 	struct exynos_spi_priv *priv = dev_get_priv(bus);
 
 	priv->regs = plat->regs;
diff --git a/drivers/spi/fsl_dspi.c b/drivers/spi/fsl_dspi.c
index dfea569..6ec85db 100644
--- a/drivers/spi/fsl_dspi.c
+++ b/drivers/spi/fsl_dspi.c
@@ -481,7 +481,7 @@
 
 static int fsl_dspi_probe(struct udevice *bus)
 {
-	struct fsl_dspi_platdata *plat = dev_get_platdata(bus);
+	struct fsl_dspi_platdata *plat = dev_get_plat(bus);
 	struct fsl_dspi_priv *priv = dev_get_priv(bus);
 	struct dm_spi_bus *dm_spi_bus;
 	uint mcr_cfg_val;
diff --git a/drivers/spi/fsl_espi.c b/drivers/spi/fsl_espi.c
index 05e564b..b8db2ee 100644
--- a/drivers/spi/fsl_espi.c
+++ b/drivers/spi/fsl_espi.c
@@ -520,7 +520,7 @@
 
 static int fsl_espi_probe(struct udevice *bus)
 {
-	struct fsl_espi_platdata *plat = dev_get_platdata(bus);
+	struct fsl_espi_platdata *plat = dev_get_plat(bus);
 	struct fsl_spi_slave *fsl = dev_get_priv(bus);
 
 	fsl->espi = (ccsr_espi_t *)((u32)plat->regs_addr);
diff --git a/drivers/spi/ich.c b/drivers/spi/ich.c
index 0ee691d..b42b536 100644
--- a/drivers/spi/ich.c
+++ b/drivers/spi/ich.c
@@ -264,7 +264,7 @@
 				 const struct spi_mem_op *op)
 {
 	struct udevice *bus = dev_get_parent(slave->dev);
-	struct ich_spi_platdata *plat = dev_get_platdata(bus);
+	struct ich_spi_platdata *plat = dev_get_plat(bus);
 	struct ich_spi_priv *ctlr = dev_get_priv(bus);
 	uint16_t control;
 	int16_t opcode_index;
@@ -602,7 +602,7 @@
 static int ich_spi_exec_op(struct spi_slave *slave, const struct spi_mem_op *op)
 {
 	struct udevice *bus = dev_get_parent(slave->dev);
-	struct ich_spi_platdata *plat = dev_get_platdata(bus);
+	struct ich_spi_platdata *plat = dev_get_plat(bus);
 	int ret;
 
 	bootstage_start(BOOTSTAGE_ID_ACCUM_SPI, "fast_spi");
@@ -706,7 +706,7 @@
 						   offsetp);
 	}
 #else
-	struct ich_spi_platdata *plat = dev_get_platdata(bus);
+	struct ich_spi_platdata *plat = dev_get_plat(bus);
 
 	/*
 	 * We cannot rely on plat->bdf being set up yet since this method can
@@ -758,7 +758,7 @@
 
 static int ich_protect_lockdown(struct udevice *dev)
 {
-	struct ich_spi_platdata *plat = dev_get_platdata(dev);
+	struct ich_spi_platdata *plat = dev_get_plat(dev);
 	struct ich_spi_priv *priv = dev_get_priv(dev);
 	int ret = -ENOSYS;
 
@@ -792,7 +792,7 @@
 			       struct ich_spi_priv *ctlr)
 {
 	if (spl_phase() == PHASE_TPL) {
-		struct ich_spi_platdata *plat = dev_get_platdata(dev);
+		struct ich_spi_platdata *plat = dev_get_plat(dev);
 		int ret;
 
 		ret = fast_spi_early_init(plat->bdf, plat->mmio_base);
@@ -871,7 +871,7 @@
 
 static int ich_spi_probe(struct udevice *dev)
 {
-	struct ich_spi_platdata *plat = dev_get_platdata(dev);
+	struct ich_spi_platdata *plat = dev_get_plat(dev);
 	struct ich_spi_priv *priv = dev_get_priv(dev);
 	int ret;
 
@@ -924,7 +924,7 @@
 static int ich_spi_child_pre_probe(struct udevice *dev)
 {
 	struct udevice *bus = dev_get_parent(dev);
-	struct ich_spi_platdata *plat = dev_get_platdata(bus);
+	struct ich_spi_platdata *plat = dev_get_plat(bus);
 	struct ich_spi_priv *priv = dev_get_priv(bus);
 	struct spi_slave *slave = dev_get_parent_priv(dev);
 
@@ -947,7 +947,7 @@
 
 static int ich_spi_ofdata_to_platdata(struct udevice *dev)
 {
-	struct ich_spi_platdata *plat = dev_get_platdata(dev);
+	struct ich_spi_platdata *plat = dev_get_plat(dev);
 
 #if !CONFIG_IS_ENABLED(OF_PLATDATA)
 	struct ich_spi_priv *priv = dev_get_priv(dev);
diff --git a/drivers/spi/kirkwood_spi.c b/drivers/spi/kirkwood_spi.c
index e8617f4..9e0a1bb 100644
--- a/drivers/spi/kirkwood_spi.c
+++ b/drivers/spi/kirkwood_spi.c
@@ -109,7 +109,7 @@
 
 static int mvebu_spi_set_speed(struct udevice *bus, uint hz)
 {
-	struct mvebu_spi_platdata *plat = dev_get_platdata(bus);
+	struct mvebu_spi_platdata *plat = dev_get_plat(bus);
 	struct kwspi_registers *reg = plat->spireg;
 	u32 data;
 
@@ -127,7 +127,7 @@
 
 static void mvebu_spi_50mhz_ac_timing_erratum(struct udevice *bus, uint mode)
 {
-	struct mvebu_spi_platdata *plat = dev_get_platdata(bus);
+	struct mvebu_spi_platdata *plat = dev_get_plat(bus);
 	struct kwspi_registers *reg = plat->spireg;
 	u32 data;
 
@@ -160,7 +160,7 @@
 
 static int mvebu_spi_set_mode(struct udevice *bus, uint mode)
 {
-	struct mvebu_spi_platdata *plat = dev_get_platdata(bus);
+	struct mvebu_spi_platdata *plat = dev_get_plat(bus);
 	struct kwspi_registers *reg = plat->spireg;
 	u32 data = readl(&reg->cfg);
 
@@ -185,7 +185,7 @@
 			  const void *dout, void *din, unsigned long flags)
 {
 	struct udevice *bus = dev->parent;
-	struct mvebu_spi_platdata *plat = dev_get_platdata(bus);
+	struct mvebu_spi_platdata *plat = dev_get_plat(bus);
 
 	return _spi_xfer(plat->spireg, bitlen, dout, din, flags);
 }
@@ -198,7 +198,7 @@
 static int mvebu_spi_claim_bus(struct udevice *dev)
 {
 	struct udevice *bus = dev->parent;
-	struct mvebu_spi_platdata *plat = dev_get_platdata(bus);
+	struct mvebu_spi_platdata *plat = dev_get_plat(bus);
 
 	/* Configure the chip-select in the CTRL register */
 	clrsetbits_le32(&plat->spireg->ctrl,
@@ -220,7 +220,7 @@
 
 static int mvebu_spi_probe(struct udevice *bus)
 {
-	struct mvebu_spi_platdata *plat = dev_get_platdata(bus);
+	struct mvebu_spi_platdata *plat = dev_get_plat(bus);
 	struct kwspi_registers *reg = plat->spireg;
 
 	writel(KWSPI_SMEMRDY, &reg->ctrl);
@@ -232,7 +232,7 @@
 
 static int mvebu_spi_ofdata_to_platdata(struct udevice *bus)
 {
-	struct mvebu_spi_platdata *plat = dev_get_platdata(bus);
+	struct mvebu_spi_platdata *plat = dev_get_plat(bus);
 	const struct mvebu_spi_dev *drvdata =
 		(struct mvebu_spi_dev *)dev_get_driver_data(bus);
 
diff --git a/drivers/spi/mvebu_a3700_spi.c b/drivers/spi/mvebu_a3700_spi.c
index eddb011..3c4523a 100644
--- a/drivers/spi/mvebu_a3700_spi.c
+++ b/drivers/spi/mvebu_a3700_spi.c
@@ -146,7 +146,7 @@
 			  const void *dout, void *din, unsigned long flags)
 {
 	struct udevice *bus = dev->parent;
-	struct mvebu_spi_platdata *plat = dev_get_platdata(bus);
+	struct mvebu_spi_platdata *plat = dev_get_plat(bus);
 	struct spi_reg *reg = plat->spireg;
 	unsigned int bytelen;
 	int ret;
@@ -186,7 +186,7 @@
 
 static int mvebu_spi_set_speed(struct udevice *bus, uint hz)
 {
-	struct mvebu_spi_platdata *plat = dev_get_platdata(bus);
+	struct mvebu_spi_platdata *plat = dev_get_plat(bus);
 	struct spi_reg *reg = plat->spireg;
 	u32 data, prescale;
 
@@ -207,7 +207,7 @@
 
 static int mvebu_spi_set_mode(struct udevice *bus, uint mode)
 {
-	struct mvebu_spi_platdata *plat = dev_get_platdata(bus);
+	struct mvebu_spi_platdata *plat = dev_get_plat(bus);
 	struct spi_reg *reg = plat->spireg;
 
 	/*
@@ -229,7 +229,7 @@
 
 static int mvebu_spi_probe(struct udevice *bus)
 {
-	struct mvebu_spi_platdata *plat = dev_get_platdata(bus);
+	struct mvebu_spi_platdata *plat = dev_get_plat(bus);
 	struct spi_reg *reg = plat->spireg;
 	u32 data;
 	int ret;
@@ -281,7 +281,7 @@
 
 static int mvebu_spi_ofdata_to_platdata(struct udevice *bus)
 {
-	struct mvebu_spi_platdata *plat = dev_get_platdata(bus);
+	struct mvebu_spi_platdata *plat = dev_get_plat(bus);
 	int ret;
 
 	plat->spireg = dev_read_addr_ptr(bus);
@@ -297,7 +297,7 @@
 
 static int mvebu_spi_remove(struct udevice *bus)
 {
-	struct mvebu_spi_platdata *plat = dev_get_platdata(bus);
+	struct mvebu_spi_platdata *plat = dev_get_plat(bus);
 
 	clk_free(&plat->clk);
 
diff --git a/drivers/spi/mxc_spi.c b/drivers/spi/mxc_spi.c
index fcac5a5..af476c8 100644
--- a/drivers/spi/mxc_spi.c
+++ b/drivers/spi/mxc_spi.c
@@ -512,7 +512,7 @@
 
 static int mxc_spi_probe(struct udevice *bus)
 {
-	struct mxc_spi_slave *mxcs = dev_get_platdata(bus);
+	struct mxc_spi_slave *mxcs = dev_get_plat(bus);
 	int node = dev_of_offset(bus);
 	const void *blob = gd->fdt_blob;
 	int ret;
@@ -550,7 +550,7 @@
 static int mxc_spi_xfer(struct udevice *dev, unsigned int bitlen,
 		const void *dout, void *din, unsigned long flags)
 {
-	struct mxc_spi_slave *mxcs = dev_get_platdata(dev->parent);
+	struct mxc_spi_slave *mxcs = dev_get_plat(dev->parent);
 
 
 	return mxc_spi_xfer_internal(mxcs, bitlen, dout, din, flags);
@@ -558,7 +558,7 @@
 
 static int mxc_spi_claim_bus(struct udevice *dev)
 {
-	struct mxc_spi_slave *mxcs = dev_get_platdata(dev->parent);
+	struct mxc_spi_slave *mxcs = dev_get_plat(dev->parent);
 	struct dm_spi_slave_platdata *slave_plat = dev_get_parent_plat(dev);
 
 	mxcs->dev = dev;
@@ -579,7 +579,7 @@
 
 static int mxc_spi_set_mode(struct udevice *bus, uint mode)
 {
-	struct mxc_spi_slave *mxcs = dev_get_platdata(bus);
+	struct mxc_spi_slave *mxcs = dev_get_plat(bus);
 
 	mxcs->mode = mode;
 	mxcs->ss_pol = (mode & SPI_CS_HIGH) ? 1 : 0;
diff --git a/drivers/spi/mxs_spi.c b/drivers/spi/mxs_spi.c
index 06ab107..3f7aade 100644
--- a/drivers/spi/mxs_spi.c
+++ b/drivers/spi/mxs_spi.c
@@ -311,7 +311,7 @@
 
 static int mxs_spi_probe(struct udevice *bus)
 {
-	struct mxs_spi_platdata *plat = dev_get_platdata(bus);
+	struct mxs_spi_platdata *plat = dev_get_plat(bus);
 	struct mxs_spi_priv *priv = dev_get_priv(bus);
 	int ret;
 
diff --git a/drivers/spi/omap3_spi.c b/drivers/spi/omap3_spi.c
index dc277aa..ea722e4 100644
--- a/drivers/spi/omap3_spi.c
+++ b/drivers/spi/omap3_spi.c
@@ -414,7 +414,7 @@
 static int omap3_spi_probe(struct udevice *dev)
 {
 	struct omap3_spi_priv *priv = dev_get_priv(dev);
-	struct omap3_spi_plat *plat = dev_get_platdata(dev);
+	struct omap3_spi_plat *plat = dev_get_plat(dev);
 
 	priv->regs = plat->regs;
 	priv->pin_dir = plat->pin_dir;
@@ -482,7 +482,7 @@
 {
 	struct omap2_mcspi_platform_config *data =
 		(struct omap2_mcspi_platform_config *)dev_get_driver_data(dev);
-	struct omap3_spi_plat *plat = dev_get_platdata(dev);
+	struct omap3_spi_plat *plat = dev_get_plat(dev);
 
 	plat->regs = (struct mcspi *)(dev_read_addr(dev) + data->regs_offset);
 
diff --git a/drivers/spi/pl022_spi.c b/drivers/spi/pl022_spi.c
index 712385b..3d14203 100644
--- a/drivers/spi/pl022_spi.c
+++ b/drivers/spi/pl022_spi.c
@@ -89,7 +89,7 @@
 
 static int pl022_spi_probe(struct udevice *bus)
 {
-	struct pl022_spi_pdata *plat = dev_get_platdata(bus);
+	struct pl022_spi_pdata *plat = dev_get_plat(bus);
 	struct pl022_spi_slave *ps = dev_get_priv(bus);
 
 	ps->base = ioremap(plat->addr, plat->size);
diff --git a/drivers/spi/renesas_rpc_spi.c b/drivers/spi/renesas_rpc_spi.c
index 275fa43..87d6e48 100644
--- a/drivers/spi/renesas_rpc_spi.c
+++ b/drivers/spi/renesas_rpc_spi.c
@@ -406,7 +406,7 @@
 
 static int rpc_spi_probe(struct udevice *dev)
 {
-	struct rpc_spi_platdata *plat = dev_get_platdata(dev);
+	struct rpc_spi_platdata *plat = dev_get_plat(dev);
 	struct rpc_spi_priv *priv = dev_get_priv(dev);
 
 	priv->regs = plat->regs;
@@ -419,7 +419,7 @@
 
 static int rpc_spi_ofdata_to_platdata(struct udevice *bus)
 {
-	struct rpc_spi_platdata *plat = dev_get_platdata(bus);
+	struct rpc_spi_platdata *plat = dev_get_plat(bus);
 
 	plat->regs = dev_read_addr_index(bus, 0);
 	plat->extr = dev_read_addr_index(bus, 1);
diff --git a/drivers/spi/rk_spi.c b/drivers/spi/rk_spi.c
index 93d125e..63ed0b2 100644
--- a/drivers/spi/rk_spi.c
+++ b/drivers/spi/rk_spi.c
@@ -195,7 +195,7 @@
 static int rockchip_spi_ofdata_to_platdata(struct udevice *bus)
 {
 #if !CONFIG_IS_ENABLED(OF_PLATDATA)
-	struct rockchip_spi_platdata *plat = dev_get_platdata(bus);
+	struct rockchip_spi_platdata *plat = dev_get_plat(bus);
 	struct rockchip_spi_priv *priv = dev_get_priv(bus);
 	int ret;
 
@@ -253,7 +253,7 @@
 
 static int rockchip_spi_probe(struct udevice *bus)
 {
-	struct rockchip_spi_platdata *plat = dev_get_platdata(bus);
+	struct rockchip_spi_platdata *plat = dev_get_plat(bus);
 	struct rockchip_spi_priv *priv = dev_get_priv(bus);
 	int ret;
 
diff --git a/drivers/spi/sh_qspi.c b/drivers/spi/sh_qspi.c
index 5908e28..dd732dc 100644
--- a/drivers/spi/sh_qspi.c
+++ b/drivers/spi/sh_qspi.c
@@ -302,7 +302,7 @@
 			const void *dout, void *din, unsigned long flags)
 {
 	struct udevice *bus = dev->parent;
-	struct sh_qspi_slave *ss = dev_get_platdata(bus);
+	struct sh_qspi_slave *ss = dev_get_plat(bus);
 
 	return sh_qspi_xfer_common(ss, bitlen, dout, din, flags);
 }
@@ -321,7 +321,7 @@
 
 static int sh_qspi_probe(struct udevice *dev)
 {
-	struct sh_qspi_slave *ss = dev_get_platdata(dev);
+	struct sh_qspi_slave *ss = dev_get_plat(dev);
 
 	sh_qspi_init(ss);
 
@@ -330,7 +330,7 @@
 
 static int sh_qspi_ofdata_to_platdata(struct udevice *dev)
 {
-	struct sh_qspi_slave *plat = dev_get_platdata(dev);
+	struct sh_qspi_slave *plat = dev_get_plat(dev);
 
 	plat->regs = (struct sh_qspi_regs *)dev_read_addr(dev);
 
diff --git a/drivers/spi/soft_spi.c b/drivers/spi/soft_spi.c
index c7ed23a..1967134 100644
--- a/drivers/spi/soft_spi.c
+++ b/drivers/spi/soft_spi.c
@@ -41,7 +41,7 @@
 static int soft_spi_scl(struct udevice *dev, int bit)
 {
 	struct udevice *bus = dev_get_parent(dev);
-	struct soft_spi_platdata *plat = dev_get_platdata(bus);
+	struct soft_spi_platdata *plat = dev_get_plat(bus);
 
 	dm_gpio_set_value(&plat->sclk, bit);
 
@@ -51,7 +51,7 @@
 static int soft_spi_sda(struct udevice *dev, int bit)
 {
 	struct udevice *bus = dev_get_parent(dev);
-	struct soft_spi_platdata *plat = dev_get_platdata(bus);
+	struct soft_spi_platdata *plat = dev_get_plat(bus);
 
 	dm_gpio_set_value(&plat->mosi, bit);
 
@@ -62,7 +62,7 @@
 {
 	struct udevice *bus = dev_get_parent(dev);
 	struct soft_spi_priv *priv = dev_get_priv(bus);
-	struct soft_spi_platdata *plat = dev_get_platdata(bus);
+	struct soft_spi_platdata *plat = dev_get_plat(bus);
 	int cidle = !!(priv->mode & SPI_CPOL);
 
 	dm_gpio_set_value(&plat->cs, 0);
@@ -75,7 +75,7 @@
 static int soft_spi_cs_deactivate(struct udevice *dev)
 {
 	struct udevice *bus = dev_get_parent(dev);
-	struct soft_spi_platdata *plat = dev_get_platdata(bus);
+	struct soft_spi_platdata *plat = dev_get_plat(bus);
 
 	dm_gpio_set_value(&plat->cs, 0);
 
@@ -117,7 +117,7 @@
 {
 	struct udevice *bus = dev_get_parent(dev);
 	struct soft_spi_priv *priv = dev_get_priv(bus);
-	struct soft_spi_platdata *plat = dev_get_platdata(bus);
+	struct soft_spi_platdata *plat = dev_get_plat(bus);
 	uchar		tmpdin  = 0;
 	uchar		tmpdout = 0;
 	const u8	*txd = dout;
diff --git a/drivers/spi/spi-sunxi.c b/drivers/spi/spi-sunxi.c
index 5b6c720..8ee8c90 100644
--- a/drivers/spi/spi-sunxi.c
+++ b/drivers/spi/spi-sunxi.c
@@ -407,7 +407,7 @@
 
 static int sun4i_spi_set_speed(struct udevice *dev, uint speed)
 {
-	struct sun4i_spi_platdata *plat = dev_get_platdata(dev);
+	struct sun4i_spi_platdata *plat = dev_get_plat(dev);
 	struct sun4i_spi_priv *priv = dev_get_priv(dev);
 	unsigned int div;
 	u32 reg;
@@ -483,7 +483,7 @@
 
 static int sun4i_spi_probe(struct udevice *bus)
 {
-	struct sun4i_spi_platdata *plat = dev_get_platdata(bus);
+	struct sun4i_spi_platdata *plat = dev_get_plat(bus);
 	struct sun4i_spi_priv *priv = dev_get_priv(bus);
 	int ret;
 
@@ -516,7 +516,7 @@
 
 static int sun4i_spi_ofdata_to_platdata(struct udevice *bus)
 {
-	struct sun4i_spi_platdata *plat = dev_get_platdata(bus);
+	struct sun4i_spi_platdata *plat = dev_get_plat(bus);
 	int node = dev_of_offset(bus);
 
 	plat->base = dev_read_addr(bus);
diff --git a/drivers/spi/tegra114_spi.c b/drivers/spi/tegra114_spi.c
index dee95f4..7021f66 100644
--- a/drivers/spi/tegra114_spi.c
+++ b/drivers/spi/tegra114_spi.c
@@ -124,7 +124,7 @@
 
 static int tegra114_spi_probe(struct udevice *bus)
 {
-	struct tegra_spi_platdata *plat = dev_get_platdata(bus);
+	struct tegra_spi_platdata *plat = dev_get_plat(bus);
 	struct tegra114_spi_priv *priv = dev_get_priv(bus);
 	struct spi_regs *regs;
 	ulong rate;
@@ -181,7 +181,7 @@
 static void spi_cs_activate(struct udevice *dev)
 {
 	struct udevice *bus = dev->parent;
-	struct tegra_spi_platdata *pdata = dev_get_platdata(bus);
+	struct tegra_spi_platdata *pdata = dev_get_plat(bus);
 	struct tegra114_spi_priv *priv = dev_get_priv(bus);
 
 	/* If it's too soon to do another transaction, wait */
@@ -205,7 +205,7 @@
 static void spi_cs_deactivate(struct udevice *dev)
 {
 	struct udevice *bus = dev->parent;
-	struct tegra_spi_platdata *pdata = dev_get_platdata(bus);
+	struct tegra_spi_platdata *pdata = dev_get_plat(bus);
 	struct tegra114_spi_priv *priv = dev_get_priv(bus);
 
 	setbits_le32(&priv->regs->command1, SPI_CMD1_CS_SW_VAL);
diff --git a/drivers/spi/tegra20_sflash.c b/drivers/spi/tegra20_sflash.c
index f2d2701..53719c7 100644
--- a/drivers/spi/tegra20_sflash.c
+++ b/drivers/spi/tegra20_sflash.c
@@ -116,7 +116,7 @@
 
 static int tegra20_sflash_probe(struct udevice *bus)
 {
-	struct tegra_spi_platdata *plat = dev_get_platdata(bus);
+	struct tegra_spi_platdata *plat = dev_get_plat(bus);
 	struct tegra20_sflash_priv *priv = dev_get_priv(bus);
 
 	priv->regs = (struct spi_regs *)plat->base;
@@ -173,7 +173,7 @@
 static void spi_cs_activate(struct udevice *dev)
 {
 	struct udevice *bus = dev->parent;
-	struct tegra_spi_platdata *pdata = dev_get_platdata(bus);
+	struct tegra_spi_platdata *pdata = dev_get_plat(bus);
 	struct tegra20_sflash_priv *priv = dev_get_priv(bus);
 
 	/* If it's too soon to do another transaction, wait */
@@ -192,7 +192,7 @@
 static void spi_cs_deactivate(struct udevice *dev)
 {
 	struct udevice *bus = dev->parent;
-	struct tegra_spi_platdata *pdata = dev_get_platdata(bus);
+	struct tegra_spi_platdata *pdata = dev_get_plat(bus);
 	struct tegra20_sflash_priv *priv = dev_get_priv(bus);
 
 	/* CS is negated on Tegra, so drive a 0 to get a 1 */
diff --git a/drivers/spi/tegra20_slink.c b/drivers/spi/tegra20_slink.c
index 58c4e3f..55261a8 100644
--- a/drivers/spi/tegra20_slink.c
+++ b/drivers/spi/tegra20_slink.c
@@ -122,7 +122,7 @@
 
 static int tegra30_spi_probe(struct udevice *bus)
 {
-	struct tegra_spi_platdata *plat = dev_get_platdata(bus);
+	struct tegra_spi_platdata *plat = dev_get_plat(bus);
 	struct tegra30_spi_priv *priv = dev_get_priv(bus);
 
 	priv->regs = (struct spi_regs *)plat->base;
@@ -167,7 +167,7 @@
 static void spi_cs_activate(struct udevice *dev)
 {
 	struct udevice *bus = dev->parent;
-	struct tegra_spi_platdata *pdata = dev_get_platdata(bus);
+	struct tegra_spi_platdata *pdata = dev_get_plat(bus);
 	struct tegra30_spi_priv *priv = dev_get_priv(bus);
 
 	/* If it's too soon to do another transaction, wait */
@@ -186,7 +186,7 @@
 static void spi_cs_deactivate(struct udevice *dev)
 {
 	struct udevice *bus = dev->parent;
-	struct tegra_spi_platdata *pdata = dev_get_platdata(bus);
+	struct tegra_spi_platdata *pdata = dev_get_plat(bus);
 	struct tegra30_spi_priv *priv = dev_get_priv(bus);
 
 	/* CS is negated on Tegra, so drive a 0 to get a 1 */
diff --git a/drivers/spi/tegra210_qspi.c b/drivers/spi/tegra210_qspi.c
index 2e812e7..a596052 100644
--- a/drivers/spi/tegra210_qspi.c
+++ b/drivers/spi/tegra210_qspi.c
@@ -125,7 +125,7 @@
 
 static int tegra210_qspi_probe(struct udevice *bus)
 {
-	struct tegra_spi_platdata *plat = dev_get_platdata(bus);
+	struct tegra_spi_platdata *plat = dev_get_plat(bus);
 	struct tegra210_qspi_priv *priv = dev_get_priv(bus);
 
 	priv->regs = (struct qspi_regs *)plat->base;
@@ -174,7 +174,7 @@
 static void spi_cs_activate(struct udevice *dev)
 {
 	struct udevice *bus = dev->parent;
-	struct tegra_spi_platdata *pdata = dev_get_platdata(bus);
+	struct tegra_spi_platdata *pdata = dev_get_plat(bus);
 	struct tegra210_qspi_priv *priv = dev_get_priv(bus);
 
 	/* If it's too soon to do another transaction, wait */
@@ -198,7 +198,7 @@
 static void spi_cs_deactivate(struct udevice *dev)
 {
 	struct udevice *bus = dev->parent;
-	struct tegra_spi_platdata *pdata = dev_get_platdata(bus);
+	struct tegra_spi_platdata *pdata = dev_get_plat(bus);
 	struct tegra210_qspi_priv *priv = dev_get_priv(bus);
 
 	setbits_le32(&priv->regs->command1, QSPI_CMD1_CS_SW_VAL);
diff --git a/drivers/spi/uniphier_spi.c b/drivers/spi/uniphier_spi.c
index 02bcc0a..6d9fd3f 100644
--- a/drivers/spi/uniphier_spi.c
+++ b/drivers/spi/uniphier_spi.c
@@ -383,7 +383,7 @@
 
 static int uniphier_spi_probe(struct udevice *bus)
 {
-	struct uniphier_spi_platdata *plat = dev_get_platdata(bus);
+	struct uniphier_spi_platdata *plat = dev_get_plat(bus);
 	struct uniphier_spi_priv *priv = dev_get_priv(bus);
 
 	priv->base = plat->base;
diff --git a/drivers/spi/zynq_qspi.c b/drivers/spi/zynq_qspi.c
index 7ff1672..f0dbb1c 100644
--- a/drivers/spi/zynq_qspi.c
+++ b/drivers/spi/zynq_qspi.c
@@ -171,7 +171,7 @@
 
 static int zynq_qspi_probe(struct udevice *bus)
 {
-	struct zynq_qspi_platdata *plat = dev_get_platdata(bus);
+	struct zynq_qspi_platdata *plat = dev_get_plat(bus);
 	struct zynq_qspi_priv *priv = dev_get_priv(bus);
 	struct clk clk;
 	unsigned long clock;
diff --git a/drivers/spi/zynq_spi.c b/drivers/spi/zynq_spi.c
index f18b9e1..b400959 100644
--- a/drivers/spi/zynq_spi.c
+++ b/drivers/spi/zynq_spi.c
@@ -121,7 +121,7 @@
 
 static int zynq_spi_probe(struct udevice *bus)
 {
-	struct zynq_spi_platdata *plat = dev_get_platdata(bus);
+	struct zynq_spi_platdata *plat = dev_get_plat(bus);
 	struct zynq_spi_priv *priv = dev_get_priv(bus);
 	struct clk clk;
 	unsigned long clock;
diff --git a/drivers/spi/zynqmp_gqspi.c b/drivers/spi/zynqmp_gqspi.c
index e4ab5d6..07e84da 100644
--- a/drivers/spi/zynqmp_gqspi.c
+++ b/drivers/spi/zynqmp_gqspi.c
@@ -333,7 +333,7 @@
 
 static int zynqmp_qspi_probe(struct udevice *bus)
 {
-	struct zynqmp_qspi_platdata *plat = dev_get_platdata(bus);
+	struct zynqmp_qspi_platdata *plat = dev_get_plat(bus);
 	struct zynqmp_qspi_priv *priv = dev_get_priv(bus);
 	struct clk clk;
 	unsigned long clock;
diff --git a/drivers/sysreset/sysreset_x86.c b/drivers/sysreset/sysreset_x86.c
index 768a0d1..e51ce1b 100644
--- a/drivers/sysreset/sysreset_x86.c
+++ b/drivers/sysreset/sysreset_x86.c
@@ -30,7 +30,7 @@
  */
 int pch_sysreset_power_off(struct udevice *dev)
 {
-	struct x86_sysreset_platdata *plat = dev_get_platdata(dev);
+	struct x86_sysreset_platdata *plat = dev_get_plat(dev);
 	struct pch_pmbase_info pm;
 	u32 reg32;
 	int ret;
@@ -130,7 +130,7 @@
 
 static int x86_sysreset_probe(struct udevice *dev)
 {
-	struct x86_sysreset_platdata *plat = dev_get_platdata(dev);
+	struct x86_sysreset_platdata *plat = dev_get_plat(dev);
 
 	/* Locate the PCH if there is one. It isn't essential */
 	uclass_first_device(UCLASS_PCH, &plat->pch);
diff --git a/drivers/tee/optee/core.c b/drivers/tee/optee/core.c
index 378df93..61af5ac 100644
--- a/drivers/tee/optee/core.c
+++ b/drivers/tee/optee/core.c
@@ -297,7 +297,7 @@
 
 static u32 do_call_with_arg(struct udevice *dev, struct optee_msg_arg *arg)
 {
-	struct optee_pdata *pdata = dev_get_platdata(dev);
+	struct optee_pdata *pdata = dev_get_plat(dev);
 	struct rpc_param param = { .a0 = OPTEE_SMC_CALL_WITH_ARG };
 	void *page_list = NULL;
 
@@ -609,7 +609,7 @@
 
 static int optee_ofdata_to_platdata(struct udevice *dev)
 {
-	struct optee_pdata *pdata = dev_get_platdata(dev);
+	struct optee_pdata *pdata = dev_get_plat(dev);
 
 	pdata->invoke_fn = get_invoke_func(dev);
 	if (IS_ERR(pdata->invoke_fn))
@@ -620,7 +620,7 @@
 
 static int optee_probe(struct udevice *dev)
 {
-	struct optee_pdata *pdata = dev_get_platdata(dev);
+	struct optee_pdata *pdata = dev_get_plat(dev);
 	u32 sec_caps;
 
 	if (!is_optee_api(pdata->invoke_fn)) {
diff --git a/drivers/thermal/imx_scu_thermal.c b/drivers/thermal/imx_scu_thermal.c
index 0c2a8ea..0005800 100644
--- a/drivers/thermal/imx_scu_thermal.c
+++ b/drivers/thermal/imx_scu_thermal.c
@@ -33,7 +33,7 @@
 
 	sc_rsrc_t *sensor_rsrc = (sc_rsrc_t *)dev_get_driver_data(dev);
 
-	struct imx_sc_thermal_plat *pdata = dev_get_platdata(dev);
+	struct imx_sc_thermal_plat *pdata = dev_get_plat(dev);
 
 	if (!temp)
 		return -EINVAL;
@@ -52,7 +52,7 @@
 
 int imx_sc_thermal_get_temp(struct udevice *dev, int *temp)
 {
-	struct imx_sc_thermal_plat *pdata = dev_get_platdata(dev);
+	struct imx_sc_thermal_plat *pdata = dev_get_plat(dev);
 	int cpu_temp = 0;
 	int ret;
 
@@ -89,7 +89,7 @@
 
 static int imx_sc_thermal_bind(struct udevice *dev)
 {
-	struct imx_sc_thermal_plat *pdata = dev_get_platdata(dev);
+	struct imx_sc_thermal_plat *pdata = dev_get_plat(dev);
 	int reg, ret;
 	int offset;
 	const char *name;
@@ -128,7 +128,7 @@
 
 static int imx_sc_thermal_ofdata_to_platdata(struct udevice *dev)
 {
-	struct imx_sc_thermal_plat *pdata = dev_get_platdata(dev);
+	struct imx_sc_thermal_plat *pdata = dev_get_plat(dev);
 	struct fdtdec_phandle_args args;
 	const char *type;
 	int ret;
diff --git a/drivers/thermal/imx_thermal.c b/drivers/thermal/imx_thermal.c
index 8898268..2f6343e 100644
--- a/drivers/thermal/imx_thermal.c
+++ b/drivers/thermal/imx_thermal.c
@@ -52,7 +52,7 @@
 {
 	int temperature;
 	unsigned int reg, n_meas;
-	const struct imx_thermal_plat *pdata = dev_get_platdata(dev);
+	const struct imx_thermal_plat *pdata = dev_get_plat(dev);
 	struct anatop_regs *anatop = (struct anatop_regs *)pdata->regs;
 	struct thermal_data *priv = dev_get_priv(dev);
 	u32 fuse = priv->fuse;
@@ -237,7 +237,7 @@
 {
 	unsigned int fuse = ~0;
 
-	const struct imx_thermal_plat *pdata = dev_get_platdata(dev);
+	const struct imx_thermal_plat *pdata = dev_get_plat(dev);
 	struct thermal_data *priv = dev_get_priv(dev);
 
 	/* Read Temperature calibration data fuse */
diff --git a/drivers/thermal/imx_tmu.c b/drivers/thermal/imx_tmu.c
index 77e3b3c..1bd0340 100644
--- a/drivers/thermal/imx_tmu.c
+++ b/drivers/thermal/imx_tmu.c
@@ -126,7 +126,7 @@
 
 static int read_temperature(struct udevice *dev, int *temp)
 {
-	struct imx_tmu_plat *pdata = dev_get_platdata(dev);
+	struct imx_tmu_plat *pdata = dev_get_plat(dev);
 	ulong drv_data = dev_get_driver_data(dev);
 	u32 val;
 	u32 retry = 10;
@@ -175,7 +175,7 @@
 
 int imx_tmu_get_temp(struct udevice *dev, int *temp)
 {
-	struct imx_tmu_plat *pdata = dev_get_platdata(dev);
+	struct imx_tmu_plat *pdata = dev_get_plat(dev);
 	int cpu_tmp = 0;
 	int ret;
 
@@ -206,7 +206,7 @@
 	int i, val, len, ret;
 	u32 range[4];
 	const fdt32_t *calibration;
-	struct imx_tmu_plat *pdata = dev_get_platdata(dev);
+	struct imx_tmu_plat *pdata = dev_get_plat(dev);
 	ulong drv_data = dev_get_driver_data(dev);
 
 	debug("%s\n", __func__);
@@ -248,7 +248,7 @@
 
 static void imx_tmu_init(struct udevice *dev)
 {
-	struct imx_tmu_plat *pdata = dev_get_platdata(dev);
+	struct imx_tmu_plat *pdata = dev_get_plat(dev);
 	ulong drv_data = dev_get_driver_data(dev);
 
 	debug("%s\n", __func__);
@@ -282,7 +282,7 @@
 
 static int imx_tmu_enable_msite(struct udevice *dev)
 {
-	struct imx_tmu_plat *pdata = dev_get_platdata(dev);
+	struct imx_tmu_plat *pdata = dev_get_plat(dev);
 	ulong drv_data = dev_get_driver_data(dev);
 	u32 reg;
 
@@ -338,7 +338,7 @@
 
 static int imx_tmu_bind(struct udevice *dev)
 {
-	struct imx_tmu_plat *pdata = dev_get_platdata(dev);
+	struct imx_tmu_plat *pdata = dev_get_plat(dev);
 	int ret;
 	ofnode node, offset;
 	const char *name;
@@ -370,7 +370,7 @@
 
 static int imx_tmu_parse_fdt(struct udevice *dev)
 {
-	struct imx_tmu_plat *pdata = dev_get_platdata(dev), *p_parent_data;
+	struct imx_tmu_plat *pdata = dev_get_plat(dev), *p_parent_data;
 	struct ofnode_phandle_args args;
 	ofnode trips_np;
 	int ret;
@@ -385,7 +385,7 @@
 		return 0;
 	}
 
-	p_parent_data = dev_get_platdata(dev->parent);
+	p_parent_data = dev_get_plat(dev->parent);
 	if (p_parent_data->zone_node)
 		pdata->regs = p_parent_data->regs;
 
@@ -430,7 +430,7 @@
 
 static int imx_tmu_probe(struct udevice *dev)
 {
-	struct imx_tmu_plat *pdata = dev_get_platdata(dev);
+	struct imx_tmu_plat *pdata = dev_get_plat(dev);
 	int ret;
 
 	ret = imx_tmu_parse_fdt(dev);
diff --git a/drivers/timer/ag101p_timer.c b/drivers/timer/ag101p_timer.c
index a73a8c0..d500ba1 100644
--- a/drivers/timer/ag101p_timer.c
+++ b/drivers/timer/ag101p_timer.c
@@ -90,7 +90,7 @@
 
 static int atftme_timer_ofdata_to_platdata(struct udevice *dev)
 {
-	struct atftmr_timer_platdata *plat = dev_get_platdata(dev);
+	struct atftmr_timer_platdata *plat = dev_get_plat(dev);
 	plat->regs = map_physmem(dev_read_addr(dev),
 				 sizeof(struct atftmr_timer_regs),
 				 MAP_NOCACHE);
diff --git a/drivers/timer/altera_timer.c b/drivers/timer/altera_timer.c
index 4579717..1daa0ea 100644
--- a/drivers/timer/altera_timer.c
+++ b/drivers/timer/altera_timer.c
@@ -65,7 +65,7 @@
 
 static int altera_timer_ofdata_to_platdata(struct udevice *dev)
 {
-	struct altera_timer_platdata *plat = dev_get_platdata(dev);
+	struct altera_timer_platdata *plat = dev_get_plat(dev);
 
 	plat->regs = map_physmem(dev_read_addr(dev),
 				 sizeof(struct altera_timer_regs),
diff --git a/drivers/timer/atcpit100_timer.c b/drivers/timer/atcpit100_timer.c
index 61a04fc..47185a8 100644
--- a/drivers/timer/atcpit100_timer.c
+++ b/drivers/timer/atcpit100_timer.c
@@ -70,7 +70,7 @@
 
 static u64 atcpit_timer_get_count(struct udevice *dev)
 {
-	struct atcpit_timer_platdata *plat = dev_get_platdata(dev);
+	struct atcpit_timer_platdata *plat = dev_get_plat(dev);
 	u32 val;
 	val = ~(REG32_TMR(CH_CNT(1))+0xffffffff);
 	return timer_conv_64(val);
@@ -78,7 +78,7 @@
 
 static int atcpit_timer_probe(struct udevice *dev)
 {
-	struct atcpit_timer_platdata *plat = dev_get_platdata(dev);
+	struct atcpit_timer_platdata *plat = dev_get_plat(dev);
 	REG32_TMR(CH_REL(1)) = 0xffffffff;
 	REG32_TMR(CH_CTL(1)) = APB_CLK|TMR_32;
 	REG32_TMR(CH_EN) |= CH_TMR_EN(1 , 0);
@@ -87,7 +87,7 @@
 
 static int atcpit_timer_ofdata_to_platdata(struct udevice *dev)
 {
-	struct atcpit_timer_platdata *plat = dev_get_platdata(dev);
+	struct atcpit_timer_platdata *plat = dev_get_plat(dev);
 	plat->regs = map_physmem(dev_read_addr(dev), 0x100 , MAP_NOCACHE);
 	return 0;
 }
diff --git a/drivers/timer/atmel_pit_timer.c b/drivers/timer/atmel_pit_timer.c
index 226c680..d88a05a 100644
--- a/drivers/timer/atmel_pit_timer.c
+++ b/drivers/timer/atmel_pit_timer.c
@@ -27,7 +27,7 @@
 
 static u64 atmel_pit_get_count(struct udevice *dev)
 {
-	struct atmel_pit_platdata *plat = dev_get_platdata(dev);
+	struct atmel_pit_platdata *plat = dev_get_plat(dev);
 	struct atmel_pit_regs *const regs = plat->regs;
 	u32 val = readl(&regs->value_image);
 
@@ -36,7 +36,7 @@
 
 static int atmel_pit_probe(struct udevice *dev)
 {
-	struct atmel_pit_platdata *plat = dev_get_platdata(dev);
+	struct atmel_pit_platdata *plat = dev_get_plat(dev);
 	struct atmel_pit_regs *const regs = plat->regs;
 	struct timer_dev_priv *uc_priv = dev_get_uclass_priv(dev);
 	struct clk clk;
@@ -60,7 +60,7 @@
 
 static int atmel_pit_ofdata_to_platdata(struct udevice *dev)
 {
-	struct atmel_pit_platdata *plat = dev_get_platdata(dev);
+	struct atmel_pit_platdata *plat = dev_get_plat(dev);
 
 	plat->regs = dev_read_addr_ptr(dev);
 
diff --git a/drivers/timer/rockchip_timer.c b/drivers/timer/rockchip_timer.c
index 51ce52f..8b727b6 100644
--- a/drivers/timer/rockchip_timer.c
+++ b/drivers/timer/rockchip_timer.c
@@ -139,7 +139,7 @@
 #if CONFIG_IS_ENABLED(OF_PLATDATA)
 	struct timer_dev_priv *uc_priv = dev_get_uclass_priv(dev);
 	struct rockchip_timer_priv *priv = dev_get_priv(dev);
-	struct rockchip_timer_plat *plat = dev_get_platdata(dev);
+	struct rockchip_timer_plat *plat = dev_get_plat(dev);
 
 	priv->timer = map_sysmem(plat->dtd.reg[0], plat->dtd.reg[1]);
 	uc_priv->clock_rate = plat->dtd.clock_frequency;
diff --git a/drivers/tpm/tpm_tis_st33zp24_spi.c b/drivers/tpm/tpm_tis_st33zp24_spi.c
index b9dbe82..f0de8a6 100644
--- a/drivers/tpm/tpm_tis_st33zp24_spi.c
+++ b/drivers/tpm/tpm_tis_st33zp24_spi.c
@@ -116,7 +116,7 @@
 {
 	int total_length = 0, ret;
 	struct spi_slave *slave = dev_get_parent_priv(dev);
-	struct st33zp24_spi_phy *phy = dev_get_platdata(dev);
+	struct st33zp24_spi_phy *phy = dev_get_plat(dev);
 
 	u8 *tx_buf = (u8 *)phy->tx_buf;
 	u8 *rx_buf = phy->rx_buf;
@@ -167,7 +167,7 @@
 {
 	int total_length = 0, ret;
 	struct spi_slave *slave = dev_get_parent_priv(dev);
-	struct st33zp24_spi_phy *phy = dev_get_platdata(dev);
+	struct st33zp24_spi_phy *phy = dev_get_plat(dev);
 
 	u8 *tx_buf = (u8 *)phy->tx_buf;
 	u8 *rx_buf = phy->rx_buf;
@@ -223,7 +223,7 @@
 {
 	int latency = 1, status = 0;
 	u8 data = 0;
-	struct st33zp24_spi_phy *phy = dev_get_platdata(dev);
+	struct st33zp24_spi_phy *phy = dev_get_plat(dev);
 
 	while (!status && latency < MAX_SPI_LATENCY) {
 		phy->latency = latency;
@@ -562,7 +562,7 @@
 static int st33zp24_spi_init(struct udevice *dev)
 {
 	struct tpm_chip *chip = dev_get_priv(dev);
-	struct st33zp24_spi_phy *phy = dev_get_platdata(dev);
+	struct st33zp24_spi_phy *phy = dev_get_plat(dev);
 
 	chip->is_open = 1;
 
diff --git a/drivers/usb/cdns3/cdns3-ti.c b/drivers/usb/cdns3/cdns3-ti.c
index 75f40e1..7b205c5 100644
--- a/drivers/usb/cdns3/cdns3-ti.c
+++ b/drivers/usb/cdns3/cdns3-ti.c
@@ -87,7 +87,7 @@
 
 static int cdns_ti_probe(struct udevice *dev)
 {
-	struct cdns_ti *data = dev_get_platdata(dev);
+	struct cdns_ti *data = dev_get_plat(dev);
 	struct clk usb2_refclk;
 	int modestrap_mode;
 	unsigned long rate;
@@ -167,7 +167,7 @@
 
 static int cdns_ti_remove(struct udevice *dev)
 {
-	struct cdns_ti *data = dev_get_platdata(dev);
+	struct cdns_ti *data = dev_get_plat(dev);
 	u32 reg;
 
 	/* put device back to RESET*/
diff --git a/drivers/usb/dwc3/dwc3-generic.c b/drivers/usb/dwc3/dwc3-generic.c
index 1755289..0bfdaa0 100644
--- a/drivers/usb/dwc3/dwc3-generic.c
+++ b/drivers/usb/dwc3/dwc3-generic.c
@@ -53,9 +53,9 @@
 			      struct dwc3_generic_priv *priv)
 {
 	int rc;
-	struct dwc3_generic_plat *plat = dev_get_platdata(dev);
+	struct dwc3_generic_plat *plat = dev_get_plat(dev);
 	struct dwc3 *dwc3 = &priv->dwc3;
-	struct dwc3_glue_data *glue = dev_get_platdata(dev->parent);
+	struct dwc3_glue_data *glue = dev_get_plat(dev->parent);
 
 	dwc3->dev = dev;
 	dwc3->maximum_speed = plat->maximum_speed;
@@ -107,7 +107,7 @@
 
 static int dwc3_generic_ofdata_to_platdata(struct udevice *dev)
 {
-	struct dwc3_generic_plat *plat = dev_get_platdata(dev);
+	struct dwc3_generic_plat *plat = dev_get_plat(dev);
 	ofnode node = dev->node;
 
 	plat->base = dev_read_addr(dev);
@@ -238,7 +238,7 @@
 	u32 utmi_mode;
 	u32 utmi_status_offset = USBOTGSS_UTMI_OTG_STATUS;
 
-	struct dwc3_glue_data *glue = dev_get_platdata(dev);
+	struct dwc3_glue_data *glue = dev_get_plat(dev);
 	void *base = map_physmem(glue->regs, 0x10000, MAP_NOCACHE);
 
 	if (device_is_compatible(dev, "ti,am437x-dwc3"))
@@ -390,7 +390,7 @@
 static int dwc3_glue_probe(struct udevice *dev)
 {
 	struct dwc3_glue_ops *ops = (struct dwc3_glue_ops *)dev_get_driver_data(dev);
-	struct dwc3_glue_data *glue = dev_get_platdata(dev);
+	struct dwc3_glue_data *glue = dev_get_plat(dev);
 	struct udevice *child = NULL;
 	int index = 0;
 	int ret;
@@ -430,7 +430,7 @@
 
 static int dwc3_glue_remove(struct udevice *dev)
 {
-	struct dwc3_glue_data *glue = dev_get_platdata(dev);
+	struct dwc3_glue_data *glue = dev_get_plat(dev);
 
 	reset_release_bulk(&glue->resets);
 
diff --git a/drivers/usb/dwc3/dwc3-meson-g12a.c b/drivers/usb/dwc3/dwc3-meson-g12a.c
index 5be8bc8..acc7866 100644
--- a/drivers/usb/dwc3/dwc3-meson-g12a.c
+++ b/drivers/usb/dwc3/dwc3-meson-g12a.c
@@ -258,7 +258,7 @@
 
 int dwc3_meson_g12a_force_mode(struct udevice *dev, enum usb_dr_mode mode)
 {
-	struct dwc3_meson_g12a *priv = dev_get_platdata(dev);
+	struct dwc3_meson_g12a *priv = dev_get_plat(dev);
 
 	if (!priv)
 		return -EINVAL;
@@ -359,7 +359,7 @@
 
 static int dwc3_meson_g12a_probe(struct udevice *dev)
 {
-	struct dwc3_meson_g12a *priv = dev_get_platdata(dev);
+	struct dwc3_meson_g12a *priv = dev_get_plat(dev);
 	int ret, i;
 
 	priv->dev = dev;
@@ -434,7 +434,7 @@
 
 static int dwc3_meson_g12a_remove(struct udevice *dev)
 {
-	struct dwc3_meson_g12a *priv = dev_get_platdata(dev);
+	struct dwc3_meson_g12a *priv = dev_get_plat(dev);
 	int i;
 
 	reset_release_all(&priv->reset, 1);
diff --git a/drivers/usb/dwc3/dwc3-meson-gxl.c b/drivers/usb/dwc3/dwc3-meson-gxl.c
index 1c7bfe8..b63cc23 100644
--- a/drivers/usb/dwc3/dwc3-meson-gxl.c
+++ b/drivers/usb/dwc3/dwc3-meson-gxl.c
@@ -196,7 +196,7 @@
 
 int dwc3_meson_gxl_force_mode(struct udevice *dev, enum usb_dr_mode mode)
 {
-	struct dwc3_meson_gxl *priv = dev_get_platdata(dev);
+	struct dwc3_meson_gxl *priv = dev_get_plat(dev);
 
 	if (!priv)
 		return -EINVAL;
@@ -295,7 +295,7 @@
 
 static int dwc3_meson_gxl_probe(struct udevice *dev)
 {
-	struct dwc3_meson_gxl *priv = dev_get_platdata(dev);
+	struct dwc3_meson_gxl *priv = dev_get_plat(dev);
 	int ret, i;
 
 	priv->dev = dev;
@@ -384,7 +384,7 @@
 
 static int dwc3_meson_gxl_remove(struct udevice *dev)
 {
-	struct dwc3_meson_gxl *priv = dev_get_platdata(dev);
+	struct dwc3_meson_gxl *priv = dev_get_plat(dev);
 	int i;
 
 	reset_release_all(&priv->reset, 1);
diff --git a/drivers/usb/emul/sandbox_flash.c b/drivers/usb/emul/sandbox_flash.c
index 62c8166..67c2320 100644
--- a/drivers/usb/emul/sandbox_flash.c
+++ b/drivers/usb/emul/sandbox_flash.c
@@ -297,7 +297,7 @@
 static int sandbox_flash_bulk(struct udevice *dev, struct usb_device *udev,
 			      unsigned long pipe, void *buff, int len)
 {
-	struct sandbox_flash_plat *plat = dev_get_platdata(dev);
+	struct sandbox_flash_plat *plat = dev_get_plat(dev);
 	struct sandbox_flash_priv *priv = dev_get_priv(dev);
 	int ep = usb_pipeendpoint(pipe);
 	struct umass_bbb_cbw *cbw = buff;
@@ -368,7 +368,7 @@
 
 static int sandbox_flash_ofdata_to_platdata(struct udevice *dev)
 {
-	struct sandbox_flash_plat *plat = dev_get_platdata(dev);
+	struct sandbox_flash_plat *plat = dev_get_plat(dev);
 
 	plat->pathname = dev_read_string(dev, "sandbox,filepath");
 
@@ -377,7 +377,7 @@
 
 static int sandbox_flash_bind(struct udevice *dev)
 {
-	struct sandbox_flash_plat *plat = dev_get_platdata(dev);
+	struct sandbox_flash_plat *plat = dev_get_plat(dev);
 	struct usb_string *fs;
 
 	fs = plat->flash_strings;
@@ -393,7 +393,7 @@
 
 static int sandbox_flash_probe(struct udevice *dev)
 {
-	struct sandbox_flash_plat *plat = dev_get_platdata(dev);
+	struct sandbox_flash_plat *plat = dev_get_plat(dev);
 	struct sandbox_flash_priv *priv = dev_get_priv(dev);
 
 	priv->fd = os_open(plat->pathname, OS_O_RDONLY);
diff --git a/drivers/usb/emul/sandbox_keyb.c b/drivers/usb/emul/sandbox_keyb.c
index 16c5945..5ec1e98 100644
--- a/drivers/usb/emul/sandbox_keyb.c
+++ b/drivers/usb/emul/sandbox_keyb.c
@@ -202,7 +202,7 @@
 
 static int sandbox_keyb_bind(struct udevice *dev)
 {
-	struct sandbox_keyb_plat *plat = dev_get_platdata(dev);
+	struct sandbox_keyb_plat *plat = dev_get_plat(dev);
 	struct usb_string *fs;
 
 	fs = plat->keyb_strings;
diff --git a/drivers/usb/eth/asix.c b/drivers/usb/eth/asix.c
index be69952..674f78e 100644
--- a/drivers/usb/eth/asix.c
+++ b/drivers/usb/eth/asix.c
@@ -743,7 +743,7 @@
 #ifdef CONFIG_DM_ETH
 static int asix_eth_start(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct asix_private *priv = dev_get_priv(dev);
 
 	return asix_init_common(&priv->ueth, pdata->enetaddr);
@@ -825,7 +825,7 @@
 
 int asix_write_hwaddr(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct asix_private *priv = dev_get_priv(dev);
 
 	if (priv->flags & FLAG_TYPE_AX88172)
@@ -836,7 +836,7 @@
 
 static int asix_eth_probe(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct asix_private *priv = dev_get_priv(dev);
 	struct ueth_data *ss = &priv->ueth;
 	int ret;
diff --git a/drivers/usb/eth/asix88179.c b/drivers/usb/eth/asix88179.c
index 8abcf13..4742a95 100644
--- a/drivers/usb/eth/asix88179.c
+++ b/drivers/usb/eth/asix88179.c
@@ -857,7 +857,7 @@
 
 int ax88179_write_hwaddr(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct asix_private *priv = dev_get_priv(dev);
 	struct ueth_data *ueth = &priv->ueth;
 
@@ -866,7 +866,7 @@
 
 static int ax88179_eth_probe(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct asix_private *priv = dev_get_priv(dev);
 	struct usb_device *usb_dev;
 	int ret;
diff --git a/drivers/usb/eth/lan75xx.c b/drivers/usb/eth/lan75xx.c
index d5e4c6a..4effbc5 100644
--- a/drivers/usb/eth/lan75xx.c
+++ b/drivers/usb/eth/lan75xx.c
@@ -133,7 +133,7 @@
 int lan75xx_write_hwaddr(struct udevice *dev)
 {
 	struct usb_device *udev = dev_get_parent_priv(dev);
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	unsigned char *enetaddr = pdata->enetaddr;
 	u32 addr_lo = get_unaligned_le32(&enetaddr[0]);
 	u32 addr_hi = (u32)get_unaligned_le16(&enetaddr[4]);
@@ -242,7 +242,7 @@
 int lan75xx_read_rom_hwaddr(struct udevice *dev)
 {
 	struct usb_device *udev = dev_get_parent_priv(dev);
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	int ret;
 
 	/*
@@ -261,7 +261,7 @@
 	struct usb_device *udev = dev_get_parent_priv(dev);
 	struct lan7x_private *priv = dev_get_priv(dev);
 	struct ueth_data *ueth = &priv->ueth;
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	int ret;
 
 	/* Do a reset in order to get the MAC address from HW */
diff --git a/drivers/usb/eth/lan78xx.c b/drivers/usb/eth/lan78xx.c
index cc02e4d..37912a1 100644
--- a/drivers/usb/eth/lan78xx.c
+++ b/drivers/usb/eth/lan78xx.c
@@ -306,7 +306,7 @@
 int lan78xx_write_hwaddr(struct udevice *dev)
 {
 	struct usb_device *udev = dev_get_parent_priv(dev);
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	unsigned char *enetaddr = pdata->enetaddr;
 	u32 addr_lo = get_unaligned_le32(&enetaddr[0]);
 	u32 addr_hi = (u32)get_unaligned_le16(&enetaddr[4]);
@@ -410,7 +410,7 @@
 int lan78xx_read_rom_hwaddr(struct udevice *dev)
 {
 	struct usb_device *udev = dev_get_parent_priv(dev);
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct lan7x_private *priv = dev_get_priv(dev);
 	int ret;
 
@@ -426,7 +426,7 @@
 	struct usb_device *udev = dev_get_parent_priv(dev);
 	struct lan7x_private *priv = dev_get_priv(dev);
 	struct ueth_data *ueth = &priv->ueth;
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	int ret;
 
 	/* Do a reset in order to get the MAC address from HW */
diff --git a/drivers/usb/eth/mcs7830.c b/drivers/usb/eth/mcs7830.c
index d835170..783ab62 100644
--- a/drivers/usb/eth/mcs7830.c
+++ b/drivers/usb/eth/mcs7830.c
@@ -893,7 +893,7 @@
 int mcs7830_write_hwaddr(struct udevice *dev)
 {
 	struct usb_device *udev = dev_get_parent_priv(dev);
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 
 	return mcs7830_write_mac_common(udev, pdata->enetaddr);
 }
@@ -902,7 +902,7 @@
 {
 	struct usb_device *udev = dev_get_parent_priv(dev);
 	struct mcs7830_private *priv = dev_get_priv(dev);
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct ueth_data *ueth = &priv->ueth;
 
 	if (mcs7830_basic_reset(udev, priv))
diff --git a/drivers/usb/eth/r8152.c b/drivers/usb/eth/r8152.c
index 600e9f5..e20cf69 100644
--- a/drivers/usb/eth/r8152.c
+++ b/drivers/usb/eth/r8152.c
@@ -1774,7 +1774,7 @@
 
 static int r8152_write_hwaddr(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct r8152 *tp = dev_get_priv(dev);
 
 	unsigned char enetaddr[8] = { 0 };
@@ -1792,7 +1792,7 @@
 
 int r8152_read_rom_hwaddr(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct r8152 *tp = dev_get_priv(dev);
 
 	debug("** %s (%d)\n", __func__, __LINE__);
@@ -1803,7 +1803,7 @@
 static int r8152_eth_probe(struct udevice *dev)
 {
 	struct usb_device *udev = dev_get_parent_priv(dev);
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct r8152 *tp = dev_get_priv(dev);
 	struct ueth_data *ueth = &tp->ueth;
 	int ret;
diff --git a/drivers/usb/eth/smsc95xx.c b/drivers/usb/eth/smsc95xx.c
index 836b534..283c52c 100644
--- a/drivers/usb/eth/smsc95xx.c
+++ b/drivers/usb/eth/smsc95xx.c
@@ -937,7 +937,7 @@
 {
 	struct usb_device *udev = dev_get_parent_priv(dev);
 	struct smsc95xx_private *priv = dev_get_priv(dev);
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 
 	/* Driver-model Ethernet ensures we have this */
 	priv->have_hwaddr = 1;
@@ -1020,7 +1020,7 @@
 int smsc95xx_write_hwaddr(struct udevice *dev)
 {
 	struct usb_device *udev = dev_get_parent_priv(dev);
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct smsc95xx_private *priv = dev_get_priv(dev);
 
 	return smsc95xx_write_hwaddr_common(udev, priv, pdata->enetaddr);
@@ -1029,7 +1029,7 @@
 int smsc95xx_read_rom_hwaddr(struct udevice *dev)
 {
 	struct usb_device *udev = dev_get_parent_priv(dev);
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	int ret;
 
 	ret = smsc95xx_init_mac_address(pdata->enetaddr, udev);
diff --git a/drivers/usb/gadget/dwc2_udc_otg.c b/drivers/usb/gadget/dwc2_udc_otg.c
index 93b1c60..2d5b7dc 100644
--- a/drivers/usb/gadget/dwc2_udc_otg.c
+++ b/drivers/usb/gadget/dwc2_udc_otg.c
@@ -982,7 +982,7 @@
 
 static int dwc2_udc_otg_ofdata_to_platdata(struct udevice *dev)
 {
-	struct dwc2_plat_otg_data *plat = dev_get_platdata(dev);
+	struct dwc2_plat_otg_data *plat = dev_get_plat(dev);
 	ulong drvdata;
 	void (*set_params)(struct dwc2_plat_otg_data *data);
 	int ret;
@@ -1090,7 +1090,7 @@
 
 static int dwc2_udc_otg_probe(struct udevice *dev)
 {
-	struct dwc2_plat_otg_data *plat = dev_get_platdata(dev);
+	struct dwc2_plat_otg_data *plat = dev_get_plat(dev);
 	struct dwc2_priv_data *priv = dev_get_priv(dev);
 	struct dwc2_usbotg_reg *usbotg_reg =
 		(struct dwc2_usbotg_reg *)plat->regs_otg;
@@ -1194,7 +1194,7 @@
 
 int dwc2_udc_B_session_valid(struct udevice *dev)
 {
-	struct dwc2_plat_otg_data *plat = dev_get_platdata(dev);
+	struct dwc2_plat_otg_data *plat = dev_get_plat(dev);
 	struct dwc2_usbotg_reg *usbotg_reg =
 		(struct dwc2_usbotg_reg *)plat->regs_otg;
 
diff --git a/drivers/usb/gadget/ether.c b/drivers/usb/gadget/ether.c
index 9d4bb9d..7830a4a 100644
--- a/drivers/usb/gadget/ether.c
+++ b/drivers/usb/gadget/ether.c
@@ -2009,7 +2009,7 @@
 	int			gcnum;
 	u8			tmp[7];
 #ifdef CONFIG_DM_ETH
-	struct eth_pdata	*pdata = dev_get_platdata(l_priv->netdev);
+	struct eth_pdata	*pdata = dev_get_plat(l_priv->netdev);
 #endif
 
 	/* these flags are only ever cleared; compiler take note */
@@ -2646,7 +2646,7 @@
 static int usb_eth_probe(struct udevice *dev)
 {
 	struct ether_priv *priv = dev_get_priv(dev);
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 
 	priv->netdev = dev;
 	l_priv = priv;
diff --git a/drivers/usb/host/dwc3-of-simple.c b/drivers/usb/host/dwc3-of-simple.c
index 9b1edcd..66b3e96 100644
--- a/drivers/usb/host/dwc3-of-simple.c
+++ b/drivers/usb/host/dwc3-of-simple.c
@@ -64,7 +64,7 @@
 
 static int dwc3_of_simple_probe(struct udevice *dev)
 {
-	struct dwc3_of_simple *simple = dev_get_platdata(dev);
+	struct dwc3_of_simple *simple = dev_get_plat(dev);
 	int ret;
 
 	ret = dwc3_of_simple_clk_init(dev, simple);
@@ -80,7 +80,7 @@
 
 static int dwc3_of_simple_remove(struct udevice *dev)
 {
-	struct dwc3_of_simple *simple = dev_get_platdata(dev);
+	struct dwc3_of_simple *simple = dev_get_plat(dev);
 
 	reset_release_bulk(&simple->resets);
 
diff --git a/drivers/usb/host/dwc3-sti-glue.c b/drivers/usb/host/dwc3-sti-glue.c
index e9ebe2e..90266c7 100644
--- a/drivers/usb/host/dwc3-sti-glue.c
+++ b/drivers/usb/host/dwc3-sti-glue.c
@@ -102,7 +102,7 @@
 
 static int sti_dwc3_glue_ofdata_to_platdata(struct udevice *dev)
 {
-	struct sti_dwc3_glue_platdata *plat = dev_get_platdata(dev);
+	struct sti_dwc3_glue_platdata *plat = dev_get_plat(dev);
 	struct udevice *syscon;
 	struct regmap *regmap;
 	int ret;
@@ -150,7 +150,7 @@
 
 static int sti_dwc3_glue_bind(struct udevice *dev)
 {
-	struct sti_dwc3_glue_platdata *plat = dev_get_platdata(dev);
+	struct sti_dwc3_glue_platdata *plat = dev_get_plat(dev);
 	ofnode node, dwc3_node;
 
 	/* Find snps,dwc3 node from subnode */
@@ -175,7 +175,7 @@
 
 static int sti_dwc3_glue_probe(struct udevice *dev)
 {
-	struct sti_dwc3_glue_platdata *plat = dev_get_platdata(dev);
+	struct sti_dwc3_glue_platdata *plat = dev_get_plat(dev);
 	int ret;
 
 	/* deassert both powerdown and softreset */
@@ -216,7 +216,7 @@
 
 static int sti_dwc3_glue_remove(struct udevice *dev)
 {
-	struct sti_dwc3_glue_platdata *plat = dev_get_platdata(dev);
+	struct sti_dwc3_glue_platdata *plat = dev_get_plat(dev);
 	int ret;
 
 	/* assert both powerdown and softreset */
diff --git a/drivers/usb/host/ehci-exynos.c b/drivers/usb/host/ehci-exynos.c
index d1ff3f4..0a3983b 100644
--- a/drivers/usb/host/ehci-exynos.c
+++ b/drivers/usb/host/ehci-exynos.c
@@ -45,7 +45,7 @@
 
 static int ehci_usb_ofdata_to_platdata(struct udevice *dev)
 {
-	struct exynos_ehci_platdata *plat = dev_get_platdata(dev);
+	struct exynos_ehci_platdata *plat = dev_get_plat(dev);
 	const void *blob = gd->fdt_blob;
 	unsigned int node;
 	int depth;
@@ -214,7 +214,7 @@
 
 static int ehci_usb_probe(struct udevice *dev)
 {
-	struct exynos_ehci_platdata *plat = dev_get_platdata(dev);
+	struct exynos_ehci_platdata *plat = dev_get_plat(dev);
 	struct exynos_ehci *ctx = dev_get_priv(dev);
 	struct ehci_hcor *hcor;
 
diff --git a/drivers/usb/host/ehci-msm.c b/drivers/usb/host/ehci-msm.c
index 13ee268..6143de2 100644
--- a/drivers/usb/host/ehci-msm.c
+++ b/drivers/usb/host/ehci-msm.c
@@ -47,7 +47,7 @@
 {
 	struct msm_ehci_priv *p = dev_get_priv(dev);
 	struct usb_ehci *ehci = p->ehci;
-	struct usb_platdata *plat = dev_get_platdata(dev);
+	struct usb_platdata *plat = dev_get_plat(dev);
 	struct ehci_hccr *hccr;
 	struct ehci_hcor *hcor;
 	int ret;
diff --git a/drivers/usb/host/ehci-mx5.c b/drivers/usb/host/ehci-mx5.c
index df54431..717ef68 100644
--- a/drivers/usb/host/ehci-mx5.c
+++ b/drivers/usb/host/ehci-mx5.c
@@ -287,7 +287,7 @@
 
 static int ehci_usb_ofdata_to_platdata(struct udevice *dev)
 {
-	struct usb_platdata *plat = dev_get_platdata(dev);
+	struct usb_platdata *plat = dev_get_plat(dev);
 	const char *mode;
 
 	mode = fdt_getprop(gd->fdt_blob, dev_of_offset(dev), "dr_mode", NULL);
@@ -305,7 +305,7 @@
 
 static int ehci_usb_probe(struct udevice *dev)
 {
-	struct usb_platdata *plat = dev_get_platdata(dev);
+	struct usb_platdata *plat = dev_get_plat(dev);
 	struct usb_ehci *ehci = dev_read_addr_ptr(dev);
 	struct ehci_mx5_priv_data *priv = dev_get_priv(dev);
 	enum usb_init_type type = plat->init_type;
diff --git a/drivers/usb/host/ehci-mx6.c b/drivers/usb/host/ehci-mx6.c
index 981bf81..53f0e49 100644
--- a/drivers/usb/host/ehci-mx6.c
+++ b/drivers/usb/host/ehci-mx6.c
@@ -472,7 +472,7 @@
 
 static int ehci_usb_phy_mode(struct udevice *dev)
 {
-	struct usb_platdata *plat = dev_get_platdata(dev);
+	struct usb_platdata *plat = dev_get_plat(dev);
 	void *__iomem addr = dev_read_addr_ptr(dev);
 	void *__iomem phy_ctrl, *__iomem phy_status;
 	const void *blob = gd->fdt_blob;
@@ -520,7 +520,7 @@
 
 static int ehci_usb_ofdata_to_platdata(struct udevice *dev)
 {
-	struct usb_platdata *plat = dev_get_platdata(dev);
+	struct usb_platdata *plat = dev_get_plat(dev);
 	enum usb_dr_mode dr_mode;
 
 	dr_mode = usb_get_dr_mode(dev->node);
@@ -579,7 +579,7 @@
 
 static int ehci_usb_probe(struct udevice *dev)
 {
-	struct usb_platdata *plat = dev_get_platdata(dev);
+	struct usb_platdata *plat = dev_get_plat(dev);
 	struct usb_ehci *ehci = dev_read_addr_ptr(dev);
 	struct ehci_mx6_priv_data *priv = dev_get_priv(dev);
 	enum usb_init_type type = plat->init_type;
diff --git a/drivers/usb/host/ehci-omap.c b/drivers/usb/host/ehci-omap.c
index 51c5029..0ca20a9 100644
--- a/drivers/usb/host/ehci-omap.c
+++ b/drivers/usb/host/ehci-omap.c
@@ -368,7 +368,7 @@
 
 static int ehci_usb_ofdata_to_platdata(struct udevice *dev)
 {
-	struct usb_platdata *plat = dev_get_platdata(dev);
+	struct usb_platdata *plat = dev_get_plat(dev);
 
 	plat->init_type = USB_INIT_HOST;
 
@@ -377,7 +377,7 @@
 
 static int omap_ehci_probe(struct udevice *dev)
 {
-	struct usb_platdata *plat = dev_get_platdata(dev);
+	struct usb_platdata *plat = dev_get_plat(dev);
 	struct ehci_omap_priv_data *priv = dev_get_priv(dev);
 	struct ehci_hccr *hccr;
 	struct ehci_hcor *hcor;
diff --git a/drivers/usb/host/ehci-tegra.c b/drivers/usb/host/ehci-tegra.c
index c76e9c3..68a4904 100644
--- a/drivers/usb/host/ehci-tegra.c
+++ b/drivers/usb/host/ehci-tegra.c
@@ -828,7 +828,7 @@
 
 static int ehci_usb_probe(struct udevice *dev)
 {
-	struct usb_platdata *plat = dev_get_platdata(dev);
+	struct usb_platdata *plat = dev_get_plat(dev);
 	struct fdt_usb *priv = dev_get_priv(dev);
 	struct ehci_hccr *hccr;
 	struct ehci_hcor *hcor;
diff --git a/drivers/usb/host/ehci-vf.c b/drivers/usb/host/ehci-vf.c
index c0500e3..e311282 100644
--- a/drivers/usb/host/ehci-vf.c
+++ b/drivers/usb/host/ehci-vf.c
@@ -312,7 +312,7 @@
 
 static int ehci_usb_probe(struct udevice *dev)
 {
-	struct usb_platdata *plat = dev_get_platdata(dev);
+	struct usb_platdata *plat = dev_get_plat(dev);
 	struct ehci_vf_priv_data *priv = dev_get_priv(dev);
 	struct usb_ehci *ehci = priv->ehci;
 	struct ehci_hccr *hccr;
diff --git a/drivers/usb/host/ehci-zynq.c b/drivers/usb/host/ehci-zynq.c
index df7ea0a..7a7cfaa 100644
--- a/drivers/usb/host/ehci-zynq.c
+++ b/drivers/usb/host/ehci-zynq.c
@@ -34,7 +34,7 @@
 
 static int ehci_zynq_probe(struct udevice *dev)
 {
-	struct usb_platdata *plat = dev_get_platdata(dev);
+	struct usb_platdata *plat = dev_get_plat(dev);
 	struct zynq_ehci_priv *priv = dev_get_priv(dev);
 	struct ehci_hccr *hccr;
 	struct ehci_hcor *hcor;
diff --git a/drivers/usb/host/usb-uclass.c b/drivers/usb/host/usb-uclass.c
index 8e4e9e8..94ce9a6 100644
--- a/drivers/usb/host/usb-uclass.c
+++ b/drivers/usb/host/usb-uclass.c
@@ -401,7 +401,7 @@
 	if (ret)
 		return ret;
 
-	plat = dev_get_platdata(dev);
+	plat = dev_get_plat(dev);
 	plat->init_type = USB_INIT_DEVICE;
 	ret = device_probe(dev);
 	if (ret)
diff --git a/drivers/usb/host/xhci-brcm.c b/drivers/usb/host/xhci-brcm.c
index cc20cf0..31e4265 100644
--- a/drivers/usb/host/xhci-brcm.c
+++ b/drivers/usb/host/xhci-brcm.c
@@ -30,7 +30,7 @@
 
 static int xhci_brcm_probe(struct udevice *dev)
 {
-	struct brcm_xhci_platdata *plat = dev_get_platdata(dev);
+	struct brcm_xhci_platdata *plat = dev_get_plat(dev);
 	struct xhci_hcor *hcor;
 	struct xhci_hccr *hcd;
 	int len, ret = 0;
@@ -71,7 +71,7 @@
 
 static int xhci_brcm_deregister(struct udevice *dev)
 {
-	struct brcm_xhci_platdata *plat = dev_get_platdata(dev);
+	struct brcm_xhci_platdata *plat = dev_get_plat(dev);
 
 	/* Restore the default values for AXI read and write attributes */
 	writel(plat->awcache, plat->hc_base + DRD2U3H_XHC_REGS_AXIWRA);
diff --git a/drivers/usb/host/xhci-dwc3.c b/drivers/usb/host/xhci-dwc3.c
index a57762f..f6534a2 100644
--- a/drivers/usb/host/xhci-dwc3.c
+++ b/drivers/usb/host/xhci-dwc3.c
@@ -117,7 +117,7 @@
 	struct xhci_hccr *hccr;
 	struct dwc3 *dwc3_reg;
 	enum usb_dr_mode dr_mode;
-	struct xhci_dwc3_platdata *plat = dev_get_platdata(dev);
+	struct xhci_dwc3_platdata *plat = dev_get_plat(dev);
 	const char *phy;
 	u32 reg;
 	int ret;
@@ -167,7 +167,7 @@
 
 static int xhci_dwc3_remove(struct udevice *dev)
 {
-	struct xhci_dwc3_platdata *plat = dev_get_platdata(dev);
+	struct xhci_dwc3_platdata *plat = dev_get_plat(dev);
 
 	dwc3_shutdown_phy(dev, &plat->phys);
 
diff --git a/drivers/usb/host/xhci-exynos5.c b/drivers/usb/host/xhci-exynos5.c
index 39e651e..4d3dd36 100644
--- a/drivers/usb/host/xhci-exynos5.c
+++ b/drivers/usb/host/xhci-exynos5.c
@@ -54,7 +54,7 @@
 
 static int xhci_usb_ofdata_to_platdata(struct udevice *dev)
 {
-	struct exynos_xhci_platdata *plat = dev_get_platdata(dev);
+	struct exynos_xhci_platdata *plat = dev_get_plat(dev);
 	const void *blob = gd->fdt_blob;
 	unsigned int node;
 	int depth;
@@ -205,7 +205,7 @@
 
 static int xhci_usb_probe(struct udevice *dev)
 {
-	struct exynos_xhci_platdata *plat = dev_get_platdata(dev);
+	struct exynos_xhci_platdata *plat = dev_get_plat(dev);
 	struct exynos_xhci *ctx = dev_get_priv(dev);
 	struct xhci_hcor *hcor;
 	int ret;
diff --git a/drivers/usb/host/xhci-mvebu.c b/drivers/usb/host/xhci-mvebu.c
index 1762bbb..ffecfc2 100644
--- a/drivers/usb/host/xhci-mvebu.c
+++ b/drivers/usb/host/xhci-mvebu.c
@@ -40,7 +40,7 @@
 
 static int xhci_usb_probe(struct udevice *dev)
 {
-	struct mvebu_xhci_platdata *plat = dev_get_platdata(dev);
+	struct mvebu_xhci_platdata *plat = dev_get_plat(dev);
 	struct mvebu_xhci *ctx = dev_get_priv(dev);
 	struct xhci_hcor *hcor;
 	int len, ret;
@@ -67,7 +67,7 @@
 
 static int xhci_usb_ofdata_to_platdata(struct udevice *dev)
 {
-	struct mvebu_xhci_platdata *plat = dev_get_platdata(dev);
+	struct mvebu_xhci_platdata *plat = dev_get_plat(dev);
 
 	/*
 	 * Get the base address for XHCI controller from the device node
diff --git a/drivers/usb/host/xhci-rcar.c b/drivers/usb/host/xhci-rcar.c
index 2ef072b..22dfaf4 100644
--- a/drivers/usb/host/xhci-rcar.c
+++ b/drivers/usb/host/xhci-rcar.c
@@ -76,7 +76,7 @@
 
 static int xhci_rcar_probe(struct udevice *dev)
 {
-	struct rcar_xhci_platdata *plat = dev_get_platdata(dev);
+	struct rcar_xhci_platdata *plat = dev_get_plat(dev);
 	struct rcar_xhci *ctx = dev_get_priv(dev);
 	struct xhci_hcor *hcor;
 	int len, ret;
@@ -122,7 +122,7 @@
 static int xhci_rcar_deregister(struct udevice *dev)
 {
 	int ret;
-	struct rcar_xhci_platdata *plat = dev_get_platdata(dev);
+	struct rcar_xhci_platdata *plat = dev_get_plat(dev);
 
 	ret = xhci_deregister(dev);
 
@@ -134,7 +134,7 @@
 
 static int xhci_rcar_ofdata_to_platdata(struct udevice *dev)
 {
-	struct rcar_xhci_platdata *plat = dev_get_platdata(dev);
+	struct rcar_xhci_platdata *plat = dev_get_plat(dev);
 
 	plat->hcd_base = dev_read_addr(dev);
 	if (plat->hcd_base == FDT_ADDR_T_NONE) {
diff --git a/drivers/usb/musb-new/da8xx.c b/drivers/usb/musb-new/da8xx.c
index 2889e85..d9591b9 100644
--- a/drivers/usb/musb-new/da8xx.c
+++ b/drivers/usb/musb-new/da8xx.c
@@ -258,7 +258,7 @@
 
 static int da8xx_musb_ofdata_to_platdata(struct udevice *dev)
 {
-	struct da8xx_musb_platdata *plat = dev_get_platdata(dev);
+	struct da8xx_musb_platdata *plat = dev_get_plat(dev);
 	const void *fdt = gd->fdt_blob;
 	int node = dev_of_offset(dev);
 
@@ -282,7 +282,7 @@
 static int da8xx_musb_probe(struct udevice *dev)
 {
 	struct musb_host_data *host = dev_get_priv(dev);
-	struct da8xx_musb_platdata *plat = dev_get_platdata(dev);
+	struct da8xx_musb_platdata *plat = dev_get_plat(dev);
 	struct usb_bus_priv *priv = dev_get_uclass_priv(dev);
 	struct omap_musb_board_data *otg_board_data;
 	int ret;
diff --git a/drivers/usb/musb-new/omap2430.c b/drivers/usb/musb-new/omap2430.c
index 9150c4d..b09f0d4 100644
--- a/drivers/usb/musb-new/omap2430.c
+++ b/drivers/usb/musb-new/omap2430.c
@@ -151,7 +151,7 @@
 
 static int omap2430_musb_ofdata_to_platdata(struct udevice *dev)
 {
-	struct omap2430_musb_platdata *plat = dev_get_platdata(dev);
+	struct omap2430_musb_platdata *plat = dev_get_plat(dev);
 	const void *fdt = gd->fdt_blob;
 	int node = dev_of_offset(dev);
 
@@ -218,7 +218,7 @@
 #else
 	struct musb *musbp;
 #endif
-	struct omap2430_musb_platdata *plat = dev_get_platdata(dev);
+	struct omap2430_musb_platdata *plat = dev_get_plat(dev);
 	struct usb_bus_priv *priv = dev_get_uclass_priv(dev);
 	struct omap_musb_board_data *otg_board_data;
 	int ret = 0;
diff --git a/drivers/usb/musb-new/ti-musb.c b/drivers/usb/musb-new/ti-musb.c
index 29a0632..716e820 100644
--- a/drivers/usb/musb-new/ti-musb.c
+++ b/drivers/usb/musb-new/ti-musb.c
@@ -33,7 +33,7 @@
 
 static void ti_musb_set_phy_power(struct udevice *dev, u8 on)
 {
-	struct ti_musb_platdata *plat = dev_get_platdata(dev);
+	struct ti_musb_platdata *plat = dev_get_plat(dev);
 
 	if (!plat->ctrl_mod_base)
 		return;
@@ -79,7 +79,7 @@
 
 static int ti_musb_ofdata_to_platdata(struct udevice *dev)
 {
-	struct ti_musb_platdata *plat = dev_get_platdata(dev);
+	struct ti_musb_platdata *plat = dev_get_plat(dev);
 	const void *fdt = gd->fdt_blob;
 	int node = dev_of_offset(dev);
 	int phys;
@@ -147,7 +147,7 @@
 static int ti_musb_host_probe(struct udevice *dev)
 {
 	struct musb_host_data *host = dev_get_priv(dev);
-	struct ti_musb_platdata *plat = dev_get_platdata(dev);
+	struct ti_musb_platdata *plat = dev_get_plat(dev);
 	struct usb_bus_priv *priv = dev_get_uclass_priv(dev);
 	int ret;
 
@@ -178,7 +178,7 @@
 #if CONFIG_IS_ENABLED(OF_CONTROL)
 static int ti_musb_host_ofdata_to_platdata(struct udevice *dev)
 {
-	struct ti_musb_platdata *plat = dev_get_platdata(dev);
+	struct ti_musb_platdata *plat = dev_get_plat(dev);
 	const void *fdt = gd->fdt_blob;
 	int node = dev_of_offset(dev);
 	int ret;
@@ -216,7 +216,7 @@
 #if CONFIG_IS_ENABLED(OF_CONTROL)
 static int ti_musb_peripheral_ofdata_to_platdata(struct udevice *dev)
 {
-	struct ti_musb_platdata *plat = dev_get_platdata(dev);
+	struct ti_musb_platdata *plat = dev_get_plat(dev);
 	const void *fdt = gd->fdt_blob;
 	int node = dev_of_offset(dev);
 	int ret;
@@ -244,7 +244,7 @@
 static int ti_musb_peripheral_probe(struct udevice *dev)
 {
 	struct ti_musb_peripheral *priv = dev_get_priv(dev);
-	struct ti_musb_platdata *plat = dev_get_platdata(dev);
+	struct ti_musb_platdata *plat = dev_get_plat(dev);
 	int ret;
 
 	priv->periph = musb_init_controller(&plat->plat,
diff --git a/drivers/video/atmel_lcdfb.c b/drivers/video/atmel_lcdfb.c
index 3af3ea4..83367c4 100644
--- a/drivers/video/atmel_lcdfb.c
+++ b/drivers/video/atmel_lcdfb.c
@@ -269,7 +269,7 @@
 
 static int atmel_fb_ofdata_to_platdata(struct udevice *dev)
 {
-	struct atmel_lcd_platdata *plat = dev_get_platdata(dev);
+	struct atmel_lcd_platdata *plat = dev_get_plat(dev);
 	struct atmel_fb_priv *priv = dev_get_priv(dev);
 	struct display_timing *timing = &priv->timing;
 	const void *blob = gd->fdt_blob;
diff --git a/drivers/video/broadwell_igd.c b/drivers/video/broadwell_igd.c
index 94d9470..69bf2ee 100644
--- a/drivers/video/broadwell_igd.c
+++ b/drivers/video/broadwell_igd.c
@@ -356,7 +356,7 @@
 
 static void igd_setup_panel(struct udevice *dev)
 {
-	struct broadwell_igd_plat *plat = dev_get_platdata(dev);
+	struct broadwell_igd_plat *plat = dev_get_plat(dev);
 	struct broadwell_igd_priv *priv = dev_get_priv(dev);
 	u32 reg32;
 
@@ -398,7 +398,7 @@
 
 static int igd_cdclk_init_haswell(struct udevice *dev)
 {
-	struct broadwell_igd_plat *plat = dev_get_platdata(dev);
+	struct broadwell_igd_plat *plat = dev_get_plat(dev);
 	struct broadwell_igd_priv *priv = dev_get_priv(dev);
 	int cdclk = plat->cdclk;
 	u16 devid;
@@ -472,7 +472,7 @@
 
 static int igd_cdclk_init_broadwell(struct udevice *dev)
 {
-	struct broadwell_igd_plat *plat = dev_get_platdata(dev);
+	struct broadwell_igd_plat *plat = dev_get_plat(dev);
 	struct broadwell_igd_priv *priv = dev_get_priv(dev);
 	int cdclk = plat->cdclk;
 	u32 dpdiv, lpcll, pwctl, cdset;
@@ -567,7 +567,7 @@
 
 static int igd_pre_init(struct udevice *dev, bool is_broadwell)
 {
-	struct broadwell_igd_plat *plat = dev_get_platdata(dev);
+	struct broadwell_igd_plat *plat = dev_get_plat(dev);
 	struct broadwell_igd_priv *priv = dev_get_priv(dev);
 	u32 rp1_gfx_freq;
 	int ret;
@@ -708,7 +708,7 @@
 
 static int broadwell_igd_ofdata_to_platdata(struct udevice *dev)
 {
-	struct broadwell_igd_plat *plat = dev_get_platdata(dev);
+	struct broadwell_igd_plat *plat = dev_get_plat(dev);
 	struct broadwell_igd_priv *priv = dev_get_priv(dev);
 	int node = dev_of_offset(dev);
 	const void *blob = gd->fdt_blob;
diff --git a/drivers/video/nexell_display.c b/drivers/video/nexell_display.c
index b1f8134..ef0fdf6 100644
--- a/drivers/video/nexell_display.c
+++ b/drivers/video/nexell_display.c
@@ -536,7 +536,7 @@
 {
 	struct video_uc_platdata *uc_plat = dev_get_uclass_plat(dev);
 	struct video_priv *uc_priv = dev_get_uclass_priv(dev);
-	struct nx_display_platdata *plat = dev_get_platdata(dev);
+	struct nx_display_platdata *plat = dev_get_plat(dev);
 	static GraphicDevice *graphic_device;
 	char addr[64];
 
diff --git a/drivers/video/orisetech_otm8009a.c b/drivers/video/orisetech_otm8009a.c
index 190bb55..39c1c33 100644
--- a/drivers/video/orisetech_otm8009a.c
+++ b/drivers/video/orisetech_otm8009a.c
@@ -79,7 +79,7 @@
 static void otm8009a_dcs_write_buf(struct udevice *dev, const void *data,
 				   size_t len)
 {
-	struct mipi_dsi_panel_plat *plat = dev_get_platdata(dev);
+	struct mipi_dsi_panel_plat *plat = dev_get_plat(dev);
 	struct mipi_dsi_device *device = plat->device;
 
 	if (mipi_dsi_dcs_write_buffer(device, data, len) < 0)
@@ -89,7 +89,7 @@
 static void otm8009a_dcs_write_buf_hs(struct udevice *dev, const void *data,
 				      size_t len)
 {
-	struct mipi_dsi_panel_plat *plat = dev_get_platdata(dev);
+	struct mipi_dsi_panel_plat *plat = dev_get_plat(dev);
 	struct mipi_dsi_device *device = plat->device;
 
 	/* data will be sent in dsi hs mode (ie. no lpm) */
@@ -124,7 +124,7 @@
 
 static int otm8009a_init_sequence(struct udevice *dev)
 {
-	struct mipi_dsi_panel_plat *plat = dev_get_platdata(dev);
+	struct mipi_dsi_panel_plat *plat = dev_get_plat(dev);
 	struct mipi_dsi_device *device = plat->device;
 	int ret;
 
@@ -255,7 +255,7 @@
 
 static int otm8009a_panel_enable_backlight(struct udevice *dev)
 {
-	struct mipi_dsi_panel_plat *plat = dev_get_platdata(dev);
+	struct mipi_dsi_panel_plat *plat = dev_get_plat(dev);
 	struct mipi_dsi_device *device = plat->device;
 	int ret;
 
@@ -323,7 +323,7 @@
 static int otm8009a_panel_probe(struct udevice *dev)
 {
 	struct otm8009a_panel_priv *priv = dev_get_priv(dev);
-	struct mipi_dsi_panel_plat *plat = dev_get_platdata(dev);
+	struct mipi_dsi_panel_plat *plat = dev_get_plat(dev);
 	int ret;
 
 	if (IS_ENABLED(CONFIG_DM_REGULATOR) && priv->reg) {
diff --git a/drivers/video/raydium-rm68200.c b/drivers/video/raydium-rm68200.c
index 82e8f04..a370cd9 100644
--- a/drivers/video/raydium-rm68200.c
+++ b/drivers/video/raydium-rm68200.c
@@ -92,7 +92,7 @@
 static void rm68200_dcs_write_buf(struct udevice *dev, const void *data,
 				  size_t len)
 {
-	struct mipi_dsi_panel_plat *plat = dev_get_platdata(dev);
+	struct mipi_dsi_panel_plat *plat = dev_get_plat(dev);
 	struct mipi_dsi_device *device = plat->device;
 	int err;
 
@@ -103,7 +103,7 @@
 
 static void rm68200_dcs_write_cmd(struct udevice *dev, u8 cmd, u8 value)
 {
-	struct mipi_dsi_panel_plat *plat = dev_get_platdata(dev);
+	struct mipi_dsi_panel_plat *plat = dev_get_plat(dev);
 	struct mipi_dsi_device *device = plat->device;
 	int err;
 
@@ -223,7 +223,7 @@
 
 static int rm68200_panel_enable_backlight(struct udevice *dev)
 {
-	struct mipi_dsi_panel_plat *plat = dev_get_platdata(dev);
+	struct mipi_dsi_panel_plat *plat = dev_get_plat(dev);
 	struct mipi_dsi_device *device = plat->device;
 	struct rm68200_panel_priv *priv = dev_get_priv(dev);
 	int ret;
@@ -296,7 +296,7 @@
 static int rm68200_panel_probe(struct udevice *dev)
 {
 	struct rm68200_panel_priv *priv = dev_get_priv(dev);
-	struct mipi_dsi_panel_plat *plat = dev_get_platdata(dev);
+	struct mipi_dsi_panel_plat *plat = dev_get_plat(dev);
 	int ret;
 
 	if (IS_ENABLED(CONFIG_DM_REGULATOR) && priv->reg) {
diff --git a/drivers/video/sandbox_sdl.c b/drivers/video/sandbox_sdl.c
index cf1446e..3e231e8 100644
--- a/drivers/video/sandbox_sdl.c
+++ b/drivers/video/sandbox_sdl.c
@@ -24,7 +24,7 @@
 static int sandbox_sdl_probe(struct udevice *dev)
 {
 	struct video_uc_platdata *uc_plat = dev_get_uclass_plat(dev);
-	struct sandbox_sdl_plat *plat = dev_get_platdata(dev);
+	struct sandbox_sdl_plat *plat = dev_get_plat(dev);
 	struct video_priv *uc_priv = dev_get_uclass_priv(dev);
 	struct sandbox_state *state = state_get_current();
 	int ret;
@@ -50,7 +50,7 @@
 static int sandbox_sdl_bind(struct udevice *dev)
 {
 	struct video_uc_platdata *uc_plat = dev_get_uclass_plat(dev);
-	struct sandbox_sdl_plat *plat = dev_get_platdata(dev);
+	struct sandbox_sdl_plat *plat = dev_get_plat(dev);
 	int ret = 0;
 
 	plat->xres = dev_read_u32_default(dev, "xres", LCD_MAX_WIDTH);
diff --git a/drivers/video/stm32/stm32_dsi.c b/drivers/video/stm32/stm32_dsi.c
index 9941382..266623b 100644
--- a/drivers/video/stm32/stm32_dsi.c
+++ b/drivers/video/stm32/stm32_dsi.c
@@ -351,7 +351,7 @@
 		return ret;
 	}
 
-	mplat = dev_get_platdata(priv->panel);
+	mplat = dev_get_plat(priv->panel);
 	mplat->device = &priv->device;
 	device->lanes = mplat->lanes;
 	device->format = mplat->format;
diff --git a/drivers/video/tegra124/dp.c b/drivers/video/tegra124/dp.c
index 8519b53..d9599ee 100644
--- a/drivers/video/tegra124/dp.c
+++ b/drivers/video/tegra124/dp.c
@@ -1568,7 +1568,7 @@
 
 static int tegra_dp_ofdata_to_platdata(struct udevice *dev)
 {
-	struct tegra_dp_plat *plat = dev_get_platdata(dev);
+	struct tegra_dp_plat *plat = dev_get_plat(dev);
 
 	plat->base = dev_read_addr(dev);
 
@@ -1594,7 +1594,7 @@
 
 static int dp_tegra_probe(struct udevice *dev)
 {
-	struct tegra_dp_plat *plat = dev_get_platdata(dev);
+	struct tegra_dp_plat *plat = dev_get_plat(dev);
 	struct tegra_dp_priv *priv = dev_get_priv(dev);
 	struct display_plat *disp_uc_plat = dev_get_uclass_plat(dev);
 
diff --git a/drivers/virtio/virtio_net.c b/drivers/virtio/virtio_net.c
index b32ce3c..1794f73 100644
--- a/drivers/virtio/virtio_net.c
+++ b/drivers/virtio/virtio_net.c
@@ -145,7 +145,7 @@
 static int virtio_net_write_hwaddr(struct udevice *dev)
 {
 	struct virtio_dev_priv *uc_priv = dev_get_uclass_priv(dev->parent);
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	int i;
 
 	/*
@@ -166,7 +166,7 @@
 
 static int virtio_net_read_rom_hwaddr(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 
 	if (!pdata)
 		return -ENOSYS;
diff --git a/drivers/w1/mxc_w1.c b/drivers/w1/mxc_w1.c
index d8cbff7..99fb960 100644
--- a/drivers/w1/mxc_w1.c
+++ b/drivers/w1/mxc_w1.c
@@ -79,7 +79,7 @@
 
 static u8 mxc_w1_read_byte(struct udevice *dev)
 {
-	struct mxc_w1_pdata *pdata = dev_get_platdata(dev);
+	struct mxc_w1_pdata *pdata = dev_get_plat(dev);
 	struct mxc_w1_regs *regs = pdata->regs;
 	u16 status;
 
@@ -106,7 +106,7 @@
 
 static void mxc_w1_write_byte(struct udevice *dev, u8 byte)
 {
-	struct mxc_w1_pdata *pdata = dev_get_platdata(dev);
+	struct mxc_w1_pdata *pdata = dev_get_plat(dev);
 	struct mxc_w1_regs *regs = pdata->regs;
 	u16 status;
 
@@ -130,7 +130,7 @@
 
 static bool mxc_w1_reset(struct udevice *dev)
 {
-	struct mxc_w1_pdata *pdata = dev_get_platdata(dev);
+	struct mxc_w1_pdata *pdata = dev_get_plat(dev);
 	u16 reg_val;
 
 	writew(MXC_W1_CONTROL_RPP, &pdata->regs->control);
@@ -144,7 +144,7 @@
 
 static u8 mxc_w1_triplet(struct udevice *dev, bool bdir)
 {
-	struct mxc_w1_pdata *pdata = dev_get_platdata(dev);
+	struct mxc_w1_pdata *pdata = dev_get_plat(dev);
 	u8 id_bit   = mxc_w1_touch_bit(pdata, 1);
 	u8 comp_bit = mxc_w1_touch_bit(pdata, 1);
 	u8 retval;
@@ -168,7 +168,7 @@
 
 static int mxc_w1_ofdata_to_platdata(struct udevice *dev)
 {
-	struct mxc_w1_pdata *pdata = dev_get_platdata(dev);
+	struct mxc_w1_pdata *pdata = dev_get_plat(dev);
 	fdt_addr_t addr;
 
 	addr = dev_read_addr(dev);
@@ -182,7 +182,7 @@
 
 static int mxc_w1_probe(struct udevice *dev)
 {
-	struct mxc_w1_pdata *pdata = dev_get_platdata(dev);
+	struct mxc_w1_pdata *pdata = dev_get_plat(dev);
 	unsigned int clkrate = mxc_get_clock(MXC_IPG_PERCLK);
 	unsigned int clkdiv;
 
diff --git a/drivers/w1/w1-gpio.c b/drivers/w1/w1-gpio.c
index 2e5064f..fe4ebe2 100644
--- a/drivers/w1/w1-gpio.c
+++ b/drivers/w1/w1-gpio.c
@@ -33,7 +33,7 @@
 
 static bool w1_gpio_read_bit(struct udevice *dev)
 {
-	struct w1_gpio_pdata *pdata = dev_get_platdata(dev);
+	struct w1_gpio_pdata *pdata = dev_get_plat(dev);
 	int val;
 
 	dm_gpio_set_dir_flags(&pdata->gpio, GPIOD_IS_OUT);
@@ -63,7 +63,7 @@
 
 static void w1_gpio_write_bit(struct udevice *dev, bool bit)
 {
-	struct w1_gpio_pdata *pdata = dev_get_platdata(dev);
+	struct w1_gpio_pdata *pdata = dev_get_plat(dev);
 
 	dm_gpio_set_dir_flags(&pdata->gpio, GPIOD_IS_OUT);
 
@@ -84,7 +84,7 @@
 
 static bool w1_gpio_reset(struct udevice *dev)
 {
-	struct w1_gpio_pdata *pdata = dev_get_platdata(dev);
+	struct w1_gpio_pdata *pdata = dev_get_plat(dev);
 	int val;
 
 	/* initiate the reset pulse. first we must pull the bus to low */
@@ -153,7 +153,7 @@
 
 static int w1_gpio_ofdata_to_platdata(struct udevice *dev)
 {
-	struct w1_gpio_pdata *pdata = dev_get_platdata(dev);
+	struct w1_gpio_pdata *pdata = dev_get_plat(dev);
 	int ret;
 
 	ret = gpio_request_by_name(dev, "gpios", 0, &pdata->gpio, 0);
diff --git a/drivers/watchdog/xilinx_tb_wdt.c b/drivers/watchdog/xilinx_tb_wdt.c
index b3ee68d..46d5d28 100644
--- a/drivers/watchdog/xilinx_tb_wdt.c
+++ b/drivers/watchdog/xilinx_tb_wdt.c
@@ -34,7 +34,7 @@
 static int xlnx_wdt_reset(struct udevice *dev)
 {
 	u32 reg;
-	struct xlnx_wdt_platdata *plat = dev_get_platdata(dev);
+	struct xlnx_wdt_platdata *plat = dev_get_plat(dev);
 
 	debug("%s ", __func__);
 
@@ -51,7 +51,7 @@
 static int xlnx_wdt_stop(struct udevice *dev)
 {
 	u32 reg;
-	struct xlnx_wdt_platdata *plat = dev_get_platdata(dev);
+	struct xlnx_wdt_platdata *plat = dev_get_plat(dev);
 
 	if (plat->enable_once) {
 		debug("Can't stop Xilinx watchdog.\n");
@@ -71,7 +71,7 @@
 
 static int xlnx_wdt_start(struct udevice *dev, u64 timeout, ulong flags)
 {
-	struct xlnx_wdt_platdata *plat = dev_get_platdata(dev);
+	struct xlnx_wdt_platdata *plat = dev_get_plat(dev);
 
 	debug("%s:\n", __func__);
 
@@ -92,7 +92,7 @@
 
 static int xlnx_wdt_ofdata_to_platdata(struct udevice *dev)
 {
-	struct xlnx_wdt_platdata *plat = dev_get_platdata(dev);
+	struct xlnx_wdt_platdata *plat = dev_get_plat(dev);
 
 	plat->regs = (struct watchdog_regs *)dev_read_addr(dev);
 	if (IS_ERR(plat->regs))
diff --git a/drivers/watchdog/xilinx_wwdt.c b/drivers/watchdog/xilinx_wwdt.c
index 35d310d..6ce51a3 100644
--- a/drivers/watchdog/xilinx_wwdt.c
+++ b/drivers/watchdog/xilinx_wwdt.c
@@ -125,7 +125,7 @@
 static int xlnx_wwdt_probe(struct udevice *dev)
 {
 	int ret;
-	struct xlnx_wwdt_platdata *plat = dev_get_platdata(dev);
+	struct xlnx_wwdt_platdata *plat = dev_get_plat(dev);
 	struct xlnx_wwdt_priv *wdt = dev_get_priv(dev);
 
 	dev_dbg(dev, "%s: Probing wdt%u\n", __func__, dev->seq);
@@ -147,7 +147,7 @@
 
 static int xlnx_wwdt_ofdata_to_platdata(struct udevice *dev)
 {
-	struct xlnx_wwdt_platdata *plat = dev_get_platdata(dev);
+	struct xlnx_wwdt_platdata *plat = dev_get_plat(dev);
 
 	plat->enable_once = dev_read_u32_default(dev, "xlnx,wdt-enable-once",
 						 0);
diff --git a/drivers/xen/pvblock.c b/drivers/xen/pvblock.c
index b0c93d6..0f72241 100644
--- a/drivers/xen/pvblock.c
+++ b/drivers/xen/pvblock.c
@@ -685,7 +685,7 @@
 static int pvblock_blk_probe(struct udevice *udev)
 {
 	struct blkfront_dev *blk_dev = dev_get_priv(udev);
-	struct blkfront_platdata *plat = dev_get_platdata(udev);
+	struct blkfront_platdata *plat = dev_get_plat(udev);
 	struct blk_desc *desc = dev_get_uclass_plat(udev);
 	int ret, devid;
 
